version: '3.8' services: elasticsearch: build: context: ./elasticsearch dockerfile: Dockerfile container_name: elasticsearch environment: - discovery.type=single-node - xpack.security.enabled=false ports: - "9200:9200" - "9300:9300" networks: - app-network healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:9200/_cluster/health" ] interval: 10s timeout: 5s retries: 5 start_period: 40s restart: always postgres: image: postgres:14 container_name: postgres_db environment: - POSTGRES_DB=HealthAIDB - POSTGRES_USER=postgres - POSTGRES_PASSWORD=Oleg2005 ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data networks: - app-network restart: always backend: container_name: backend_container build: context: ./Backend dockerfile: Dockerfile ports: - "5000:5000" environment: - ELASTICSEARCH_HOST=http://elasticsearch:9200 - DATABASE_HOST=postgres depends_on: elasticsearch: condition: service_healthy postgres: condition: service_started networks: - app-network restart: always frontend: container_name: frontend_container build: context: ./frontend dockerfile: Dockerfile ports: - "5173:5173" depends_on: - backend networks: - app-network restart: always networks: app-network: driver: bridge volumes: pgdata: