services: db: image: postgres:18.3-alpine3.23 environment: POSTGRES_USER: language POSTGRES_PASSWORD: language123 POSTGRES_DB: language volumes: - postgres_data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U language -d language"] interval: 5s timeout: 5s retries: 5 migrate: image: migrate/migrate:v4.18.3 volumes: - ./backend/migrations:/migrations command: - -path - /migrations - -database - postgres://language:language123@db:5432/language?sslmode=disable - up depends_on: db: condition: service_healthy api: build: context: ./backend dockerfile: docker/Dockerfile target: prod environment: APP_ENV: production DATABASE_URL: postgres://language:language123@db:5432/language?sslmode=disable HTTP_ADDR: :8080 depends_on: migrate: condition: service_completed_successfully admin: build: ./frontend/admin ports: - "80:80" depends_on: - api volumes: postgres_data: