The server uses two stores:
Backend store
for MLflow entities: runs, parameters, metrics, tags, notes, metadata, etcArtifact store
for other ones: files, models, images, in-memory objects, or model summary, etc
The server can be deployed in one of several scenarios
See MLflow docs for actual information
- Go to scenario directory
cd docker/scenario_5
- Copy and modify "dotenv" files from examples
cp .env.example .env
cp .env.secret.example .env.secret
- Generate password for username of nginx proxy (e.g. for username "user")
htpasswd -c .htpasswd user
- Run MLflow
docker compose up -d
If you need to make changes to docker-compose.yaml, it's convenient to copy docker-compose.yaml to docker-compose.override.yaml and make changes to it
- Check MLflow UI at
http://YOUR_HOST:5000
- To connect from code, set environment variables
MLFLOW_TRACKING_URI=http://YOUR_HOST:5000
MLFLOW_TRACKING_USERNAME=HTPASSWD_USERNAME
MLFLOW_TRACKING_PASSWORD=HTPASSWD_PASSWORD
- Check MinIO UI
http://YOUR_HOST:9001
If you do not need MinIO UI, change ports "9001:9001" to expose "9001" at nginx_minio service
- Check PostgreSQL via pgAdmin at
http://YOUR_HOST:5050
If you do not need pgAdmin, comment pgadmin service in docker-compose.yaml
- Install requirements.txt
pip install -r requirements.txt
- Go to test directory
cd tests/scenario_5
- Run test script
MLFLOW_TRACKING_URI=http://YOUR_HOST:5000 MLFLOW_TRACKING_USERNAME=HTPASSWD_USERNAME MLFLOW_TRACKING_PASSWORD=HTPASSWD_PASSWORD python test.py
- Check MLflow UI on new experiment and model at
http://YOUR_HOST:5000
Selected stores:
- RDBMS PostgreSQL as
Backend store
- S3 compatible MinIO as
Artifact store
Containers used:
- Local image for MLflow
- postgres for PostgreSQL
- minio for MinIO
- minio/mc for MinIO Client
- nginx for MinIO Nginx
- nginx for MLflow Nginx
- Optional pgadmin4 for pgAdmin
See docs for more information