version: '3.8' networks: my_network: driver: bridge services: postgres: image: postgres:15 container_name: postgres-db restart: unless-stopped environment: POSTGRES_USER: admin POSTGRES_PASSWORD: adminpassword POSTGRES_DB: my_database ports: - "5432:5432" volumes: - ./postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U admin -d my_database -h localhost"] interval: 10s retries: 5 start_period: 20s timeout: 5s networks: - my_network nginx: image: nginx:latest container_name: nginx ports: - "8080:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - ai-service - auth-service - communication-service - document-service - loan-service - user-service networks: - my_network ai-service: container_name: ai-service build: context: ./miralabs-backend/ai-service ports: - "8006:80" networks: - my_network restart: unless-stopped depends_on: postgres: condition: service_healthy auth-service: container_name: auth-service build: context: ./miralabs-backend/auth-service env_file: - ./miralabs-backend/auth-service/.env ports: - "8001:8001" networks: - my_network restart: unless-stopped depends_on: postgres: condition: service_healthy communication-service: container_name: communication-service build: context: ./miralabs-backend/communication-service ports: - "8002:80" networks: - my_network restart: unless-stopped depends_on: postgres: condition: service_healthy document-service: container_name: document-service build: context: ./miralabs-backend/document-service env_file: - ./miralabs-backend/document-service/.env ports: - "8003:80" networks: - my_network restart: unless-stopped depends_on: postgres: condition: service_healthy loan-service: container_name: loan-service build: context: ./miralabs-backend/loan-service ports: - "8004:80" networks: - my_network restart: unless-stopped depends_on: postgres: condition: service_healthy user-service: container_name: user-service build: context: ./miralabs-backend/user-service env_file: - ./miralabs-backend/user-service/.env ports: - "8005:80" networks: - my_network restart: unless-stopped depends_on: postgres: condition: service_healthy volumes: postgres_data: driver: local