Multi-stage Dockerfile (node build → caddy:2-alpine production, node dev). Compose base + dev override for prod/dev switching via .env ENVIRONMENT flag. Makefile targets: build, up, down, restart, logs, dev, prod, clean, rebuild. Caddyfile serves static Astro output with caching and compression.
22 lines
699 B
YAML
22 lines
699 B
YAML
services:
|
|
docs:
|
|
build:
|
|
target: dev
|
|
volumes:
|
|
- ./src:/app/src
|
|
- ./public:/app/public
|
|
- ./astro.config.mjs:/app/astro.config.mjs
|
|
environment:
|
|
- VITE_HMR_HOST=${DOMAIN}
|
|
labels:
|
|
caddy: ${DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 4321}}"
|
|
caddy.reverse_proxy.flush_interval: "-1"
|
|
caddy.reverse_proxy.transport: http
|
|
caddy.reverse_proxy.transport.read_timeout: "0"
|
|
caddy.reverse_proxy.transport.write_timeout: "0"
|
|
caddy.reverse_proxy.transport.keepalive: 5m
|
|
caddy.reverse_proxy.transport.keepalive_idle_conns: "10"
|
|
caddy.reverse_proxy.stream_timeout: 24h
|
|
caddy.reverse_proxy.stream_close_delay: 5s
|