Fix service DNS by using explicit named network

network_mode: bridge uses Docker's default bridge which has no
service-name DNS. An explicit named network gets its own resolver
so nginx can resolve "server" by name. Also adds a healthcheck so
app waits until server is actually ready before nginx starts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
chris 2026-05-11 11:59:53 -04:00
parent 18d238a602
commit 635f56e44b

View File

@ -12,15 +12,30 @@ services:
- OLLAMA_MODEL=${OLLAMA_MODEL:-gemma4:latest} - OLLAMA_MODEL=${OLLAMA_MODEL:-gemma4:latest}
extra_hosts: extra_hosts:
- "host-gateway:host-gateway" - "host-gateway:host-gateway"
networks:
- internal
healthcheck:
test: ["CMD-SHELL", "node -e \"require('net').createConnection(3000).on('connect',()=>process.exit(0)).on('error',()=>process.exit(1))\""]
interval: 5s
timeout: 3s
retries: 10
start_period: 15s
app: app:
build: ./frontend build: ./frontend
restart: unless-stopped restart: unless-stopped
depends_on: depends_on:
- server server:
condition: service_healthy
networks:
- internal
ports: ports:
- "127.0.0.1:3080:80" - "127.0.0.1:3080:80"
networks:
internal:
driver: bridge
volumes: volumes:
server_data: server_data:
server_uploads: server_uploads: