version: '3' services: mlflow-db: container_name: mlflow-db platform: linux/x86_64 image: mysql restart: always command: --port=3307 ports: - "3307:3307" environment: - MYSQL_DATABASE=experiments - MYSQL_USER=mlflow - MYSQL_PASSWORD=password - MYSQL_ROOT_PASSWORD=root - MYSQL_ROOT_HOST=0.0.0.0 volumes: # - ./db:/var/lib/mysql - ./mysqldata:/var/lib/mysql:rw,delegated cap_add: - SYS_NICE # to remove "mbind: Operation not permitted" warning (https://stackoverflow.com/questions/55559386/how-to-fix-mbind-operation-not-permitted-in-mysql-error-log) mlflow-artifact: image: minio/minio environment: - MINIO_ACCESS_KEY=minio - MINIO_SECRET_KEY=password ports: - "9000:9000" - "9001:9001" command: [ "minio", "server", "--address", ":9001", "--console-address", ":9000", "/data" ] mlflow: container_name: mlflow build: . image: mlflow restart: always depends_on: - mlflow-db - mlflow-artifact ports: - "5000:5000" environment: - MLFLOW_S3_ENDPOINT_URL=http://localhost:9000 - AWS_ACCESS_KEY_ID="minio" - AWS_SECRET_ACCESS_KEY="password" command: mlflow server --backend-store-uri mysql+pymysql://mlflow:password@mlflow-db:3307/experiments --default-artifact-root s3://mlops.local.com --host 0.0.0.0