2021-12-03 21:29:36 +01:00
|
|
|
version: "3.9"
|
2020-08-23 14:48:38 +02:00
|
|
|
services:
|
2020-08-23 23:20:49 +02:00
|
|
|
s3:
|
2023-11-05 21:32:38 +01:00
|
|
|
image: minio/minio:RELEASE.2023-11-01T18-37-25Z
|
2021-12-03 21:32:42 +01:00
|
|
|
restart: unless-stopped
|
2020-08-23 22:28:42 +02:00
|
|
|
ports:
|
2021-12-03 21:29:36 +01:00
|
|
|
- "9000:9000"
|
|
|
|
|
- "9001:9001"
|
2020-08-23 22:28:42 +02:00
|
|
|
environment:
|
2021-12-03 21:21:36 +01:00
|
|
|
- MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
|
|
|
|
|
- MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
|
2021-12-03 21:29:36 +01:00
|
|
|
command: server /data --console-address ":9001"
|
2020-08-23 23:20:49 +02:00
|
|
|
networks:
|
2021-12-03 21:21:36 +01:00
|
|
|
- internal
|
|
|
|
|
- public
|
2020-08-23 23:20:49 +02:00
|
|
|
volumes:
|
2023-11-05 21:32:38 +01:00
|
|
|
- minio_new_volume:/data
|
2020-08-23 23:20:49 +02:00
|
|
|
db:
|
2023-11-05 21:27:42 +01:00
|
|
|
image: mysql:8-oracle # -oracle tag supports arm64 architecture!
|
2021-12-03 21:32:42 +01:00
|
|
|
restart: unless-stopped
|
2021-12-03 21:29:36 +01:00
|
|
|
container_name: mlflow_db
|
|
|
|
|
expose:
|
|
|
|
|
- "3306"
|
|
|
|
|
environment:
|
|
|
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
|
|
|
|
- MYSQL_USER=${MYSQL_USER}
|
|
|
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
|
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
|
|
|
|
volumes:
|
2023-11-05 21:27:42 +01:00
|
|
|
- db_new_volume:/var/lib/mysql
|
2021-12-03 21:29:36 +01:00
|
|
|
networks:
|
|
|
|
|
- internal
|
2020-08-23 23:20:49 +02:00
|
|
|
mlflow:
|
2023-11-05 20:26:26 +01:00
|
|
|
image: ubuntu/mlflow:2.1.1_1.0-22.04
|
2021-12-03 21:29:36 +01:00
|
|
|
container_name: tracker_mlflow
|
2021-12-03 21:32:42 +01:00
|
|
|
restart: unless-stopped
|
2021-12-03 21:29:36 +01:00
|
|
|
ports:
|
|
|
|
|
- "5000:5000"
|
|
|
|
|
environment:
|
|
|
|
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
|
|
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
|
|
|
|
- AWS_DEFAULT_REGION=${AWS_REGION}
|
|
|
|
|
- MLFLOW_S3_ENDPOINT_URL=http://s3:9000
|
|
|
|
|
networks:
|
|
|
|
|
- public
|
|
|
|
|
- internal
|
2022-11-02 17:26:52 +01:00
|
|
|
entrypoint: mlflow server --backend-store-uri mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@db:3306/${MYSQL_DATABASE} --default-artifact-root s3://${AWS_BUCKET_NAME}/ --artifacts-destination s3://${AWS_BUCKET_NAME}/ -h 0.0.0.0
|
|
|
|
|
depends_on:
|
|
|
|
|
wait-for-db:
|
|
|
|
|
condition: service_completed_successfully
|
2021-12-03 22:10:59 +01:00
|
|
|
create_s3_buckets:
|
|
|
|
|
image: minio/mc
|
|
|
|
|
depends_on:
|
|
|
|
|
- "s3"
|
|
|
|
|
entrypoint: >
|
|
|
|
|
/bin/sh -c "
|
2022-11-02 17:26:52 +01:00
|
|
|
until (/usr/bin/mc alias set minio http://s3:9000 '${AWS_ACCESS_KEY_ID}' '${AWS_SECRET_ACCESS_KEY}') do echo '...waiting...' && sleep 1; done;
|
2022-11-02 17:14:55 +01:00
|
|
|
/usr/bin/mc mb minio/${AWS_BUCKET_NAME};
|
2021-12-03 22:10:59 +01:00
|
|
|
exit 0;
|
|
|
|
|
"
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2022-11-02 17:26:52 +01:00
|
|
|
wait-for-db:
|
|
|
|
|
image: atkrad/wait4x
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
command: tcp db:3306 -t 90s -i 250ms
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-11-05 21:15:28 +01:00
|
|
|
run_test_experiment:
|
|
|
|
|
build:
|
|
|
|
|
context: ./test_experiment
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
depends_on:
|
|
|
|
|
- "mlflow"
|
|
|
|
|
environment:
|
|
|
|
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
|
|
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
|
|
|
|
- AWS_DEFAULT_REGION=${AWS_REGION}
|
|
|
|
|
- MLFLOW_S3_ENDPOINT_URL=http://s3:9000
|
|
|
|
|
- MLFLOW_TRACKING_URI=http://mlflow:5000
|
|
|
|
|
entrypoint: >
|
|
|
|
|
/bin/sh -c "
|
|
|
|
|
python3 mlflow_tracking.py;
|
|
|
|
|
exit 0;
|
|
|
|
|
"
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2020-08-23 23:20:49 +02:00
|
|
|
networks:
|
2021-12-03 21:29:36 +01:00
|
|
|
internal:
|
|
|
|
|
public:
|
|
|
|
|
driver: bridge
|
2021-12-03 21:34:32 +01:00
|
|
|
volumes:
|
2023-11-05 21:27:42 +01:00
|
|
|
db_new_volume:
|
2023-11-05 21:32:38 +01:00
|
|
|
minio_new_volume:
|