Leaflet Blog in Deno Fresh

no write

Changed files
+26 -6
+12 -4
Dockerfile
··· 5 5 WORKDIR /deno-dir/ 6 6 RUN chown -R deno:deno /deno-dir 7 7 8 - COPY . . 9 - RUN deno cache main.ts 10 - RUN deno task build 8 + # We don't copy files here anymore - they will be copied at runtime 9 + # from the read-only mounted volume 10 + 11 + # Cache dependencies 12 + RUN mkdir -p /src 13 + COPY deno.json /src/ 14 + WORKDIR /src 15 + RUN deno cache -r deno.json 16 + 17 + # Switch back to deno-dir (our actual runtime directory) 18 + WORKDIR /deno-dir/ 11 19 12 20 EXPOSE 8000 13 21 14 - CMD ["run", "-A", "main.ts"] 22 + # Command is now handled by docker-compose entrypoint
+14 -2
docker-compose.yml
··· 2 2 services: 3 3 deno-app: 4 4 build: . 5 + # Copy files from . to deno-code volume on start 6 + entrypoint: > 7 + sh -c " 8 + cp -r /src/* /deno-dir/ && 9 + deno run -A main.ts 10 + " 11 + # Mount source code as read-only at different path for copying 5 12 volumes: 6 - - .:/deno-dir 13 + - .:/src:ro 14 + - deno-code:/deno-dir 7 15 ports: 8 16 - "8001:8000" 9 17 environment: 10 18 - DENO_ENV=production 11 - command: ["deno", "run", "-A", "main.ts"] 19 + 20 + volumes: 21 + deno-code: 22 + # This ensures the volume is recreated each time 23 + name: "deno-code-${COMPOSE_PROJECT_NAME:-default}"