This repo is part of the blog post "How to setup an MLflow 2.0 Workspace with Docker?" on medium.com.
The MLflow environment serves as a tracking server for the ML model parameters and for versioning the ML models. This project ueses MLflow version 2.0.1.
The following four infrastructure services are used. These services can be started manually so that you get an MLflow working environment in docker.
- JupyterLab (docker-container: jupyter)
- MLflow Tracking Server (docker-container: mlflow)
- Artifact Store as SFTP Server (docker-container: sftp)
- Backend Storage as postgres db (docker-container: postgres)
- Run the script in the folder /keys/generate_keys.sh:
sh generate_keys.sh
- Start MLflow workspace:
docker-compose up --build
- Execute the following script (copies the known_hosts from mlflow to jupyter):
sh copy_known_hosts_docker.sh
- Visit http://0.0.0.0:5000 for MLflow UI
- Visit http://0.0.0.0:8888 for JupyterLab UI (enter the token in the terminal for login)
- Stop MLflow workspace:
docker-compose down
- Add new dependencies to file docker/jupyter/requirements.txt
- On Linux systems there may be permission problems with the Artifact Store. The current workaround is to set the permissions manually (sudo chmod -R 777).
- SFTP-Server: Cyberduck