services: db: image: postgres:16 container_name: reports_db env_file: [.env] environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - TZ=${TZ} volumes: - ./local/postgres:/var/lib/postgresql/data - ./docker/postgres/init:/docker-entrypoint-initdb.d:ro ports: - "5432:5432" networks: [reports-network] restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 10 php: build: context: . dockerfile: docker/php/Dockerfile container_name: reports_php env_file: [.env] environment: POSTGRES_HOST: db volumes: - ./.env:/var/www/html/.env:ro - ./src:/var/www/html/src:ro - ./public:/var/www/html/public:ro depends_on: db: condition: service_healthy networks: [reports-network] restart: unless-stopped nginx: build: context: . dockerfile: docker/nginx/Dockerfile container_name: reports_nginx ports: - "80:80" depends_on: - php networks: [reports-network] restart: unless-stopped networks: reports-network: driver: bridge