version: "3.9" services: db: image: postgres:15-alpine container_name: diploma-db environment: POSTGRES_DB: ${DB_NAME:-diploma_db} POSTGRES_USER: ${DB_USER:-diploma_admin} POSTGRES_PASSWORD: ${DB_PASSWORD:-password} volumes: - pg_data:/var/lib/postgresql/data - ./db/seed.dump:/docker-entrypoint-initdb.d/seed.dump:ro - ./db/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-diploma_admin} -d ${DB_NAME:-diploma_db}"] interval: 10s timeout: 5s retries: 5 start_period: 10s ports: - "5432:5432" app: build: context: . dockerfile: Dockerfile container_name: diploma-app depends_on: db: condition: service_healthy env_file: - .env environment: DB_HOST: db DB_PORT: 5432 ports: - "8080:8080" volumes: pg_data: