services: db: image: docker.io/postgres:18 restart: unless-stopped env_file: .env volumes: - ./data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U ductcalc"] interval: 5s timeout: 5s retries: 5 app: build: dockerfile: docker/Dockerfile context: . restart: unless-stopped env_file: .env environment: - POSTGRES_HOSTNAME=db depends_on: db: condition: healthy ports: - 8081:8080 healthcheck: test: curl --fail --silent http://0.0.0.0:8080/health || exit 1 interval: 1m timeout: 10s retries: 3