version: '3.8' services: postgres: image: postgis/postgis:15-3.3 container_name: wuhan_postgres environment: POSTGRES_DB: wuhan_disease POSTGRES_USER: wuhan_user POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-wuhan_password} volumes: - postgres_data:/var/lib/postgresql/data - ./init.sql:/docker-entrypoint-initdb.d/init.sql ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U wuhan_user -d wuhan_disease"] interval: 5s timeout: 5s retries: 5 networks: - wuhan_network backend: build: context: ../backend dockerfile: Dockerfile container_name: wuhan_backend environment: DATABASE_URL: postgresql://wuhan_user:password@postgres:5432/wuhan_disease POSTGRES_HOST: postgres POSTGRES_PORT: 5432 depends_on: postgres: condition: service_healthy ports: - "8000:8000" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/docs || exit 1"] interval: 10s timeout: 5s retries: 5 start_period: 30s networks: - wuhan_network frontend: build: context: ../frontend dockerfile: Dockerfile container_name: wuhan_frontend environment: VITE_API_URL: http://localhost:8000 depends_on: - backend ports: - "3000:80" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:80 || exit 1"] interval: 10s timeout: 5s retries: 5 networks: - wuhan_network # jupyter: # image: jupyter/scipy-notebook:latest # container_name: wuhan_jupyter # ports: # - "8888:8888" # volumes: # - ../processed:/home/jovyan/processed # - ../Datas:/home/jovyan/Datas # networks: # - wuhan_network volumes: postgres_data: driver: local networks: wuhan_network: driver: bridge