task_receipts/docker-compose.yml

46 lines
1006 B
YAML

version: '3.8'
services:
server:
build:
context: ./server
dockerfile: Dockerfile
container_name: task-receipts-server
ports:
- "4000:4000"
environment:
- NODE_ENV=production
volumes:
# Mount database directory for persistence
- ./server/data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:4000/graphql', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) })"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- task-receipts-network
client:
build:
context: ./client
dockerfile: Dockerfile
container_name: task-receipts-client
ports:
- "80:80"
depends_on:
server:
condition: service_healthy
restart: unless-stopped
networks:
- task-receipts-network
networks:
task-receipts-network:
driver: bridge
volumes:
server-data:
driver: local