Leaflet Blog in Deno Fresh

no write

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