https://github.com/yeungadrian/mlops
Simple open source MLOps with docker compose
https://github.com/yeungadrian/mlops
dockercompose mlops
Last synced: 3 months ago
JSON representation
Simple open source MLOps with docker compose
- Host: GitHub
- URL: https://github.com/yeungadrian/mlops
- Owner: yeungadrian
- Created: 2022-06-21T18:09:00.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-31T20:17:05.000Z (about 1 year ago)
- Last Synced: 2025-02-01T06:31:47.803Z (12 months ago)
- Topics: dockercompose, mlops
- Homepage:
- Size: 3.01 MB
- Stars: 5
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MLOps
Simple open source MLOps stack with docker compose.
## Design

## Quickstart
This setup requires docker and docker compose. The easiest way to get started is to install [docker desktop](https://docs.docker.com/desktop/install/mac-install/).
Create a .env file with the following keys. Values below are only placeholders and can be freely changed.
```
POSTGRES_DATABASE=postgres
POSTGRES_HOST=postgres
POSTGRES_PASSWORD=password
POSTGRES_PORT=5432
POSTGRES_USER=postgres
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=password
```
Now run the following command:
```
docker compose up -d
```
Once the applications have started and are ready, you can access them on the following urls:
- MLflow: [http://localhost:5001](http://localhost:5001)
- MinIO: [http://localhost:9001](http://localhost:9001)
- Qdrant: [http://localhost:6333/dashboard](http://localhost:6333/dashboard)
- Argilla: [http://localhost:6900](http://localhost:6900)
## Applications
- [PostgreSQL (SQL)](https://github.com/postgres/postgres)
- [MinIO (object storage)](https://github.com/minio/minio)
- [Qdrant (vector search)](https://github.com/qdrant/qdrant)
- [Argilla (data annotation)](https://github.com/argilla-io/argilla)
- [MLflow (experiment tracking & model registry)](https://github.com/mlflow/mlflow)
## Updating images
The following commands will stop the containers, update images if new versions have been published and redeploy containers.
```
docker compose stop
docker compose pull
docker compose up -d
```
## Clunky aspects
- MLflow: no official image containing psycopg2. Workaround of running `pip install psycopg2` prior to launching server. (Not enough benefits to create custom image).
- postgreSQL: Setting up databases per application. Mounting init-db.sql to docker-entrypoint-initdb.d folder which is automatically run only if postgres volume is empty.