version: '3.8' services: mlflow: image: ghcr.io/mlflow/mlflow:latest container_name: wuhan_mlflow ports: - "5000:5000" environment: - MLFLOW_TRACKING_URI=postgresql://postgres:postgres@postgis:5432/mlflow - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-minio} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-minio123} - AWS_DEFAULT_REGION=us-east-1 - MLFLOW_S3_ENDPOINT_URL=http://minio:9000 volumes: - mlflow_artifacts:/mlflow/artifacts depends_on: postgis: condition: service_healthy command: > mlflow server --backend-store-uri postgresql://postgres:postgres@postgis:5432/mlflow --default-artifact-root s3://mlflow/ --host 0.0.0.0 --port 5000 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/"] interval: 30s timeout: 10s retries: 3 postgis: image: postgis/postgis:15-3.3 container_name: wuhan_postgis environment: - POSTGRES_DB=mlflow - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres ports: - "5432:5432" volumes: - postgis_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 volumes: mlflow_artifacts: postgis_data: