version: '3.8' services: db: image: postgres:17-alpine container_name: primeira_liga_db restart: unless-stopped environment: POSTGRES_USER: primeiraliga POSTGRES_PASSWORD: primeiraliga2024 POSTGRES_DB: primeiraliga volumes: - postgres_data:/var/lib/postgresql/data - ./init-db:/docker-entrypoint-initdb.d healthcheck: test: ["CMD-SHELL", "pg_isready -U primeiraliga -d primeiraliga"] interval: 5s timeout: 5s retries: 10 start_period: 10s deploy: resources: limits: memory: 512m networks: - app_network app: build: context: . dockerfile: Dockerfile container_name: primeira_liga_app restart: unless-stopped ports: - "3000:3000" environment: - DATABASE_URL=postgresql://primeiraliga:primeiraliga2024@db:5432/primeiraliga?connect_timeout=15&pool_timeout=20&connection_limit=10 - API_FOOTBALL_API_KEY=54a71050279ccaa37d29625c16f2ef70 - NEXTAUTH_URL=http://localhost:3000 - NEXTAUTH_SECRET=primeira-liga-stats-secret-key-2024 - NODE_ENV=production depends_on: db: condition: service_healthy deploy: resources: limits: memory: 1g networks: - app_network volumes: postgres_data: networks: app_network: driver: bridge