Replace MinIO with RustFS in docker-compose setup#21099
Replace MinIO with RustFS in docker-compose setup#21099harupy merged 15 commits intomlflow:masterfrom
Conversation
🛠 DevTools 🛠
Install mlflow from this PRFor Databricks, use the following command: |
|
@jmaggesi Thank you for the contribution! Could you fix the following issue(s)? ⚠ DCO checkThe DCO check failed. Please sign off your commit(s) by following the instructions here. See https://github.com/mlflow/mlflow/blob/master/CONTRIBUTING.md#sign-your-work for more details. |
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
aec8940 to
2be1563
Compare
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
|
/title |
… doc Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
|
/title |
|
Let's update the PR description |
|
Let's fix the lint check failure |
There was a problem hiding this comment.
Pull request overview
This PR aims to replace MinIO with RustFS as the default S3-compatible storage in the MLflow docker-compose setup. However, the implementation does not match the PR description's promise to provide multiple S3-compatible storage examples.
Changes:
- Replaced MinIO with RustFS in the docker-compose.yml
- Updated documentation to reflect RustFS as the default storage backend
- Modified environment variable configuration to support generic S3-compatible storage
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 14 comments.
| File | Description |
|---|---|
| docker-compose/docker-compose.yml | Replaces MinIO service with RustFS, updates bucket creation logic to use AWS CLI |
| docker-compose/README.md | Updates documentation claiming multiple backends available, but only RustFS is implemented |
| docker-compose/.env.dev.example | Converts MinIO-specific variables to generic S3 variables, adds RustFS-specific config |
| docs/docs/self-hosting/index.mdx | Updates the quick reference to mention RustFS instead of MinIO |
|
/title |
|
Let's address copilot comments that are legit. |
|
Documentation preview for cfe4222 is available at: Changed Pages (1)
More info
|
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
|
Ok, i've fixed the remarks from Copilot |
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
docker-compose/README.md
Outdated
| --- | ||
|
|
||
| ## How It Works (at a Glance) | ||
| ### Bucket Bootstrap (idempotent) |
There was a problem hiding this comment.
Do we really need to add this in this PR? Let's focus on replacing minio, not extending the existing contents.
There was a problem hiding this comment.
I've added here some comments just to let know the user what is the behaviour of the compose, but it's easy enough to check it directly in the compose file.
I can remove from line 183 to line 200 and leave the other comments about troubleshooting so from line 201 it should be ok
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (1)
docs/docs/self-hosting/index.mdx:72
- 🟡 MODERATE: The self-hosting quickstart commands use
cd docker-compose, but in the MLflow repo the directory ismlflow/docker-composeafter cloning. Update the snippet so it works when copied/pasted.
The MLflow repository includes a ready-to-run Compose project under `docker-compose/` that provisions MLflow, PostgreSQL, and [RustFS](https://github.com/rustfs/rustfs).
```bash
git clone https://github.com/mlflow/mlflow.git
cd docker-compose
docker-compose/README.md
Outdated
| - **MLflow Tracking Server** — exposed on your host (default `http://localhost:5000`). | ||
| - **PostgreSQL** — persists MLflow's metadata (experiments, runs, params, metrics). | ||
| - **MinIO** — stores run artifacts via an S3-compatible API. | ||
| All variants share the same architecture: |
There was a problem hiding this comment.
It was a comment referring to the other examples that i've put there before with SeaweedFS and Garage.
I've already removed in my local this one, i will check the other comments and remove the section in the readme
|
@jmaggesi Left some comments. Can you address them? |
…le, fixed some typo in README Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
|
Done, i can remove more in the README about the troubleshooting if it's not the case and fixed some typo that were still referring to the other examples that i've removed from the folder |
docker-compose/docker-compose.yml
Outdated
| @@ -1,6 +1,8 @@ | |||
| version: "3.9" | |||
There was a problem hiding this comment.
version is deprecated in Docker Compose v2+ and emits a warning. The original file correctly omitted it — let's remove this line.
…rage, variables alignment, removed typos in README.md Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com>
- Remove unnecessary historical note about MinIO - Fix awkward phrasing and typos in README - Rename rustfs-data volume to storage-data for generality Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
harupy
left a comment
There was a problem hiding this comment.
Tested e2e: all services (PostgreSQL, RustFS, create-bucket, MLflow) come up healthy, and logging params/metrics/artifacts works correctly. LGTM.
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com> Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Jonatan Maggesi <jmaggesi@gmail.com> Co-authored-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com> Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Jonatan Maggesi <jmaggesi@gmail.com> Co-authored-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Jonatan Maggesi <jmaggesi@gmail.com> Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Jonatan Maggesi <jmaggesi@gmail.com> Co-authored-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
Related Issues/PRs
Resolve #20775
What changes are proposed in this pull request?
This PR removes the old Minio example in the docker-compose folder and add the RustFS as an alternative S3-compatible storage for artifacts.
The folder contains a .env example file and the docker compose required and updates also the doc
How is this PR tested?
Does this PR require documentation update?
Does this PR require updating the MLflow Skills repository?
Release Notes
Is this a user-facing change?
What component(s), interfaces, languages, and integrations does this PR affect?
Components
area/tracking: Tracking Service, tracking client APIs, autologgingarea/models: MLmodel format, model serialization/deserialization, flavorsarea/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registryarea/scoring: MLflow Model server, model deployment tools, Spark UDFsarea/evaluation: MLflow model evaluation features, evaluation metrics, and evaluation workflowsarea/gateway: MLflow AI Gateway client APIs, server, and third-party integrationsarea/prompts: MLflow prompt engineering features, prompt templates, and prompt managementarea/tracing: MLflow Tracing features, tracing APIs, and LLM tracing functionalityarea/projects: MLproject format, project running backendsarea/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev serverarea/build: Build and test infrastructure for MLflowarea/docs: MLflow documentation pagesHow should the PR be classified in the release notes? Choose one:
rn/none- No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" sectionrn/breaking-change- The PR will be mentioned in the "Breaking Changes" sectionrn/feature- A new user-facing feature worth mentioning in the release notesrn/bug-fix- A user-facing bug fix worth mentioning in the release notesrn/documentation- A user-facing documentation change worth mentioning in the release notesShould this PR be included in the next patch release?
Yesshould be selected for bug fixes, documentation updates, and other small changes.Noshould be selected for new features and larger changes. If you're unsure about the release classification of this PR, leave this unchecked to let the maintainers decide.What is a minor/patch release?
Bug fixes, doc updates and new features usually go into minor releases.
Bug fixes and doc updates usually go into patch releases.