Files
major_tom/Containerfile
Thomas 6b32199f25 Disable origin cache headers to prevent stale JS/WASM mismatch
static-web-server's default cache-control sends max-age=31536000 (1 year)
for .js files but only 1 day for .wasm. After redeployment, Cloudflare CDN
serves the cached old .js with a fresh .wasm, causing EM_ASM address table
mismatches and runtime crashes. Disable built-in cache headers at the origin
so Cloudflare respects new content on each deploy.

Also update AGENTS.md: add deploy commands, fix emsdk path, document the
Cloudflare cache-purge requirement, and correct stale MAX_ENTITY_SPAWNS
and MAX_EXIT_ZONES values.
2026-03-02 21:33:07 +00:00

27 lines
781 B
Docker

# JNR Web — static file server for the Emscripten build
#
# Prerequisites:
# make web (produces dist-web/)
#
# Build:
# podman build -t jnr-web .
# docker build -t jnr-web .
#
# Run locally:
# podman run --rm -p 8080:80 jnr-web
# Then visit http://localhost:8080
#
# Deploy to k3s:
# podman save jnr-web | sudo k3s ctr images import -
# sudo k3s kubectl apply -f k8s/
FROM docker.io/joseluisq/static-web-server:2
COPY dist-web/ /public/
# Disable the default cache-control headers which cache .js for 1 year.
# The .js and .wasm files must always be fetched together (EM_ASM address
# table in JS must match the compiled WASM), so aggressive caching causes
# "No EM_ASM constant found" errors after redeployments.
ENV SERVER_CACHE_CONTROL_HEADERS=false