backblaze-proofframe / docs /assets /docker-smoke-report.json
ADJCJH's picture
Retry Docker health connection resets
b0593e2 verified
Raw
History Blame Contribute Delete
11.2 kB
{
"schema": "proofframe.docker_smoke.v1",
"created_at": "2026-06-29T13:08:34Z",
"ok": true,
"mode": "docker_smoke_ready",
"safe_to_share": true,
"image": "proofframe:submission-smoke",
"container": "proofframe-submission-smoke",
"base_url": "http://127.0.0.1:18088",
"dockerignore": {
"path": ".dockerignore",
"present": true,
"required_patterns_present": true,
"missing_required_patterns": [],
"example_env_allowed": true,
"missing_allow_patterns": []
},
"health": {
"ok": true,
"status": 200,
"json": {
"app": "ProofFrame",
"version": "0.1.0",
"generation_backend": "mock",
"storage_backend": "local",
"b2_configured": false,
"genblaze_configured": false,
"ready": true
},
"error": null
},
"checks": [
{
"id": "dockerignore_secret_exclusions",
"label": ".dockerignore excludes local secrets and heavy runtime paths",
"ok": true,
"detail": "missing_required=[]; missing_allow=[]."
},
{
"id": "docker_daemon",
"label": "Docker daemon is reachable",
"ok": true,
"detail": "docker info completed."
},
{
"id": "docker_build",
"label": "Docker image builds",
"ok": true,
"detail": "docker build completed."
},
{
"id": "docker_run",
"label": "Docker container starts",
"ok": true,
"detail": "docker run returned a container id."
},
{
"id": "docker_health",
"label": "Dockerized app reports local/mock health",
"ok": true,
"detail": "health={'app': 'ProofFrame', 'version': '0.1.0', 'generation_backend': 'mock', 'storage_backend': 'local', 'b2_configured': False, 'genblaze_configured': False, 'ready': True}; error=None."
},
{
"id": "api_smoke",
"label": "API smoke passes against the Docker container",
"ok": true,
"detail": "api_smoke.py completed."
},
{
"id": "docker_cleanup",
"label": "Smoke container is removed",
"ok": true,
"detail": "docker rm -f completed."
}
],
"commands": [
{
"id": "docker_info",
"command": [
"docker",
"info",
"--format",
"{{json .ServerVersion}}"
],
"ok": true,
"returncode": 0,
"stdout_tail": "\"29.2.1\"\n",
"stderr_tail": ""
},
{
"id": "docker_build",
"command": [
"docker",
"build",
"-t",
"proofframe:submission-smoke",
"."
],
"ok": true,
"returncode": 0,
"stdout_tail": "",
"stderr_tail": ".2 MB/s eta 0:00:00\n#12 11.84 Downloading watchfiles-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (453 kB)\n#12 12.10 Downloading websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (186 kB)\n#12 12.23 Downloading anyio-4.14.1-py3-none-any.whl (124 kB)\n#12 12.33 Downloading idna-3.18-py3-none-any.whl (65 kB)\n#12 12.36 Building wheels for collected packages: proofframe\n#12 12.36 Building wheel for proofframe (pyproject.toml): started\n#12 12.45 Building wheel for proofframe (pyproject.toml): finished with status 'done'\n#12 12.45 Created wheel for proofframe: filename=proofframe-0.1.0-py3-none-any.whl size=16735 sha256=af99c46816616bb62d0fdacec4eef528d2f91a0fb3f0f2eec963481d21a979b0\n#12 12.45 Stored in directory: /tmp/pip-ephem-wheel-cache-b30wfins/wheels/54/1b/b7/aa63e25c8f14f4f2ae7b04e6097bdecb770e455c5c1ee0a600\n#12 12.45 Successfully built proofframe\n#12 12.47 Installing collected packages: websockets, uvloop, typing-extensions, pyyaml, python-dotenv, idna, httptools, h11, click, annotated-types, annotated-doc, uvicorn, typing-inspection, pydantic-core, anyio, watchfiles, starlette, pydantic, fastapi, proofframe\n#12 12.96 Successfully installed annotated-doc-0.0.4 annotated-types-0.7.0 anyio-4.14.1 click-8.4.2 fastapi-0.138.2 h11-0.16.0 httptools-0.8.0 idna-3.18 proofframe-0.1.0 pydantic-2.13.4 pydantic-core-2.46.4 python-dotenv-1.2.2 pyyaml-6.0.3 starlette-1.3.1 typing-extensions-4.15.0 typing-inspection-0.4.2 uvicorn-0.49.0 uvloop-0.22.1 watchfiles-1.2.0 websockets-16.0\n#12 12.96 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\n#12 13.41 \n#12 13.41 [notice] A new release of pip is available: 25.0.1 -> 26.1.2\n#12 13.41 [notice] To update, run: pip install --upgrade pip\n#12 DONE 13.5s\n\n#13 exporting to image\n#13 exporting layers\n#13 exporting layers 1.0s done\n#13 exporting manifest sha256:4cc9ee2644b610d0be9a9102848b9a8d7d03e5860d0eb6fb440acc1cbbc48e56\n#13 exporting manifest sha256:4cc9ee2644b610d0be9a9102848b9a8d7d03e5860d0eb6fb440acc1cbbc48e56 done\n#13 exporting config sha256:8ca65155b531222f1b9db706b7e8d6c2ef13e5ab89222f77c65f1140a3e25faa done\n#13 exporting attestation manifest sha256:77e51187c28a6f4425f8c8ac62303b636d4d395ba21b165560a3566bcba43a42 done\n#13 exporting manifest list sha256:8db2f73c4c3e7c958f5f54b97a2b55633251063c588b9d3529ed80eb4237af8b done\n#13 naming to docker.io/library/proofframe:submission-smoke done\n#13 unpacking to docker.io/library/proofframe:submission-smoke\n#13 unpacking to docker.io/library/proofframe:submission-smoke 0.2s done\n#13 DONE 1.2s\n\nView build details: docker-desktop://dashboard/build/colima/colima/6kscttg0tbdcjbcbyrqvzdqry\n"
},
{
"id": "docker_run",
"command": [
"docker",
"run",
"-d",
"--name",
"proofframe-submission-smoke",
"-p",
"18088:8088",
"proofframe:submission-smoke"
],
"ok": true,
"returncode": 0,
"stdout_tail": "9ac300270d1dde4628fedbfd5e1e0e4cd691af728a95221a6693bd2060c67184\n",
"stderr_tail": ""
},
{
"id": "api_smoke",
"command": [
"/Users/junhaocheng/working-dir/ai-competitions/backblaze-proofframe/.venv/bin/python",
"scripts/api_smoke.py",
"--base-url",
"http://127.0.0.1:18088"
],
"ok": true,
"returncode": 0,
"stdout_tail": "{\n \"ok\": true,\n \"base_url\": \"http://127.0.0.1:18088\",\n \"generation_backend\": \"mock\",\n \"storage_backend\": \"local\",\n \"judge_brief_schema\": \"proofframe.judge_brief.v1\",\n \"judge_safe_to_submit\": false,\n \"judge_crosswalk_schema\": \"proofframe.judge_crosswalk.v1\",\n \"judge_crosswalk_mode\": \"pre_live_crosswalk_ready\",\n \"judge_crosswalk_safe_to_submit\": false,\n \"judge_crosswalk_rows\": 4,\n \"judge_decision_brief_schema\": \"proofframe.judge_decision_brief.v1\",\n \"judge_decision_brief_mode\": \"pre_live_decision_ready\",\n \"judge_decision_brief_safe_to_submit\": false,\n \"judge_decision_brief_checks\": 6,\n \"judge_evidence_index_schema\": \"proofframe.judge_evidence_index.v1\",\n \"judge_evidence_index_mode\": \"pre_live_evidence_index_ready\",\n \"judge_evidence_index_safe_to_submit\": false,\n \"judge_evidence_index_links\": 17,\n \"judge_video_publish_kit_schema\": \"proofframe.final_video_publish_kit.v1\",\n \"judge_video_publish_kit_mode\": \"ready_for_final_upload\",\n \"judge_video_publish_kit_safe_to_submit\": false,\n \"judge_video_publish_kit_final_video_ready\": false,\n \"judge_video_publish_kit_upload_checks\": 4,\n \"judge_recording_schema\": \"proofframe.recording_assets.v1\",\n \"judge_recording_mode\": \"mock_recording_ready\",\n \"judge_recording_final_video_ready\": false,\n \"judge_recording_shots\": 6,\n \"judge_devpost_schema\": \"proofframe.devpost_form_kit.v1\",\n \"judge_devpost_mode\": \"pre_live_form_ready\",\n \"judge_devpost_final_form_ready\": false,\n \"judge_devpost_fields\": 19,\n \"judge_submit_checklist_schema\": \"proofframe.devpost_submission_checklist.v1\",\n \"judge_submit_checklist_mode\": \"pre_submit_blocked\",\n \"judge_submit_checklist_safe_to_submit\": false,\n \"judge_submit_checklist_preflight\": 6,\n \"campaign_id\": \"cmp_41bfc33b8d38\",\n \"asset_id\": \"ast_63c61ec137e0\",\n \"asset_provider\": \"mock\",\n \"asset_model\": \"mock-svg-v1\",\n \"asset_storage_backend\": \"local\",\n \"asset_storage_key\": \"cmp_41bfc33b8d38/cmp_41bfc33b8d38-variant-1.svg\",\n \"asset_public_url_present\": true,\n \"asset_status\": \"approved\",\n \"asset_sha256\": \"6d1cc2f93f7f19cbdf535987f0eec5c94bc4eaded0f48ce544bb971e270419ea\",\n \"manifest_storage_backend\": \"local\",\n \"manifest_key\": \"cmp_41bfc33b8d38/cmp_41bfc33b8d38-manifest.json\",\n \"manifest_sha256\": \"b4a610c59763ad810d4b4aca1219bebc717966d64345083f6d40476ee954bc87\",\n \"packet_bytes\": 1530,\n \"judge_demo_campaign_id\": \"cmp_68db3b8b56d0\"\n}\n",
"stderr_tail": ""
},
{
"id": "docker_logs",
"command": [
"docker",
"logs",
"--tail",
"80",
"proofframe-submission-smoke"
],
"ok": true,
"returncode": 0,
"stdout_tail": "INFO: 172.17.0.1:57054 - \"GET /api/health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57060 - \"GET /api/health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57074 - \"GET /api/judge/brief HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57082 - \"GET /api/judge/crosswalk HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57088 - \"GET /api/judge/decision-brief HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57094 - \"GET /api/judge/evidence-index HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57100 - \"GET /api/judge/video-publish-kit HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57102 - \"GET /api/judge/recording HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57110 - \"GET /api/judge/devpost HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57118 - \"GET /api/judge/submission-checklist HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57124 - \"POST /api/campaigns HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57128 - \"POST /api/campaigns/cmp_41bfc33b8d38/generate?count=1 HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57130 - \"POST /api/assets/ast_63c61ec137e0/status HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57136 - \"POST /api/campaigns/cmp_41bfc33b8d38/export HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57146 - \"GET /api/campaigns/cmp_41bfc33b8d38/packet.zip HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:57158 - \"POST /api/demo/judge-packet HTTP/1.1\" 200 OK\n",
"stderr_tail": "INFO: Started server process [7]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:8088 (Press CTRL+C to quit)\n"
},
{
"id": "docker_cleanup",
"command": [
"docker",
"rm",
"-f",
"proofframe-submission-smoke"
],
"ok": true,
"returncode": 0,
"stdout_tail": "proofframe-submission-smoke\n",
"stderr_tail": ""
}
],
"secret_policy": "This smoke test uses local/mock mode, does not read .env.final.local, and requires .dockerignore to exclude local env files from the Docker build context."
}