Sign inSign up

keanrawr/mlflow-server

By keanrawr

•Updated 6 days ago

Simple approach to having an ml-flow server docker image.

Image
Machine learning & AI
Data science
Monitoring & observability
0

3.9K

keanrawr/mlflow-server repository overview

⁠MLflow Server Docker Image

Simple Docker image for running an MLflow Tracking Server⁠ with:

  • PostgreSQL as the backend store
  • S3-compatible object storage for artifacts
  • Automatic MLflow database migrations on container startup

Source code: keanrawr/mlflow-server⁠

⁠Tagging

Image tags match the pinned MLflow version used inside the image.

Example:

  • image tag: 3.10.1
  • bundled MLflow version: 3.10.1

Pull the latest published version explicitly:

docker pull keanrawr/mlflow-server:3.10.1

⁠What This Image Does

On startup, the container:

  1. waits for PostgreSQL to become available
  2. runs mlflow db upgrade
  3. starts the MLflow server

This keeps the tracking database schema up to date when deploying a new image version.

⁠Required Environment Variables

The container expects these variables when running the default server command:

  • BACKEND_URI
  • ARTIFACTS_DESTINATION

Typical optional settings:

  • MLFLOW_HOST default: 0.0.0.0
  • MLFLOW_PORT default: 5000

For S3-compatible artifact storage, you will usually also provide:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

⁠Example Docker Compose

services:
  db:
    restart: unless-stopped
    image: postgres:15
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
      interval: 5s
      timeout: 5s
      retries: 10
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - dbdata:/var/lib/postgresql/data

  mlflow:
    restart: unless-stopped
    image: keanrawr/mlflow-server:3.10.1
    depends_on:
      db:
        condition: service_healthy
    ports:
      - "5000:5000"
    environment:
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - BACKEND_URI=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
      - ARTIFACTS_DESTINATION=${S3_ROOT}

volumes:
  dbdata:

⁠Notes

  • This image is intended for simple deployments, especially Docker Compose and homelab setups.
  • PostgreSQL collation warnings, if you see them, are database environment issues rather than image-specific MLflow problems.
  • Releases are published from GitHub, and the Docker tag must match the pinned MLflow version exactly.

⁠Repository

Tag summary

Content type

Image

Digest

sha256:d1cbc3726…

Size

299.1 MB

Last updated

6 days ago

docker pull keanrawr/mlflow-server