Files
checklist/docker-compose.prod.yml
2025-11-19 01:09:25 -03:00

64 lines
1.7 KiB
YAML

services:
postgres:
image: postgres:15-alpine
container_name: syntria-db-prod
environment:
POSTGRES_DB: ${POSTGRES_DB:-syntria_db}
POSTGRES_USER: ${POSTGRES_USER:-syntria_user}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-syntria_user} -d ${POSTGRES_DB:-syntria_db}"]
interval: 10s
timeout: 5s
retries: 5
restart: always
networks:
- syntria-network
backend:
image: ${DOCKER_USERNAME}/syntria-backend:latest
container_name: syntria-backend-prod
environment:
DATABASE_URL: postgresql://${POSTGRES_USER:-syntria_user}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-syntria_db}
SECRET_KEY: ${SECRET_KEY}
OPENAI_API_KEY: ${OPENAI_API_KEY}
ENVIRONMENT: production
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost,http://localhost:5173}
ports:
- "8000:8000"
volumes:
- uploads_data:/app/uploads
depends_on:
postgres:
condition: service_healthy
restart: always
networks:
- syntria-network
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
frontend:
image: ${DOCKER_USERNAME}/syntria-frontend:latest
container_name: syntria-frontend-prod
ports:
- "80:80"
environment:
- VITE_API_URL=${API_URL:-http://localhost:8000}
restart: always
networks:
- syntria-network
depends_on:
- backend
volumes:
postgres_data:
uploads_data:
networks:
syntria-network:
driver: bridge