services: api: image: flask_api container_name: ml_api build: context: ./api target: build ports: - "8000:5000" depends_on: - redis - model volumes: - ./uploads:/src/uploads environment: POSTGRES_DB: $POSTGRES_DB POSTGRES_USER: $POSTGRES_USER POSTGRES_PASSWORD: $POSTGRES_PASSWORD DATABASE_HOST: $DATABASE_HOST SECRET_KEY: $SECRET_KEY networks: - shared_network redis: image: redis:6.2.6 networks: - shared_network db: image: postgres:latest container_name: postgres_db environment: POSTGRES_DB: $POSTGRES_DB POSTGRES_USER: $POSTGRES_USER POSTGRES_PASSWORD: $POSTGRES_PASSWORD volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" networks: - shared_network model: image: ml_service container_name: ml_service build: context: ./model dockerfile: ./Dockerfile depends_on: - redis volumes: - ./uploads:/src/uploads networks: - shared_network ui: image: ml_ui container_name: ml_ui build: context: ./ui target: build ports: - "9090:9090" depends_on: - api environment: - API_HOST=api - API_PORT=5000 networks: - shared_network networks: shared_network: external: true volumes: postgres_data: