services: db: image: postgres:18.3-alpine3.23 container_name: language-db environment: POSTGRES_USER: language POSTGRES_PASSWORD: language123 POSTGRES_DB: language ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U language -d language"] interval: 5s timeout: 5s retries: 5 api: build: context: . dockerfile: docker/Dockerfile target: dev container_name: language-api environment: APP_ENV: development DATABASE_URL: postgres://language:language123@db:5432/language?sslmode=disable HTTP_ADDR: :8080 ports: - "8080:8080" volumes: - .:/app depends_on: db: condition: service_healthy command: ["air", "-c", ".air.toml"] volumes: postgres_data: