# Build context for `gcloud run deploy --source .` (see deploy/README.md). # # The Dockerfile COPYs exactly three things — core/web, demo/data, and deploy/nginx.conf.template — # so the context is a WHITELIST of those and nothing else (same shape as the repo-root .gcloudignore). # It used to be a short deny-list, which meant every deploy tarred up whatever else happened to be in # this tree: _cap/ render artifacts (3.6 GB), demo/record/node_modules, the export tooling, .env, and # — while a sim was running — the boat-cam scratch under demo/data/media/live/. One such tarball was # still sitting in the machine's temp dir at 14.5 GB. # # NOTE: once a .gcloudignore exists gcloud stops applying .gitignore. That is LOAD-BEARING here: the # gitignored neural audio (demo/data/audio/) and the Cesium token (core/web/cesium-config.js) must be # uploaded and bundled — the deployed demo needs them. Keep them inside the whitelist. # 1) ignore everything at the context root... /* # 2) ...then re-include only what the Dockerfile needs (a parent must be re-included before its # children can be). !/Dockerfile !/core /core/* !/core/web !/demo /demo/* !/demo/data !/deploy /deploy/* !/deploy/nginx.conf.template # 3) belt-and-suspenders inside the kept subtrees: boat-cam clips a running sim writes under # demo/data/media/live/ are scratch bound for nobody's browser (the dev server purges them on # start and holds only a rolling window), so they must never reach an image. /demo/data/media/live/ **/__pycache__/ **/*.pyc **/.pytest_cache/ **/node_modules/