From 6a93c977e4a079fcf3b98393f520aad374fcac3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82uski?= Date: Fri, 19 Nov 2021 21:57:53 +0100 Subject: [PATCH] provide caddyfile basic auth for the mlflow --- Caddyfile | 22 ++++++++++++++++ docker-compose.yml | 47 ++++++++++++++++++++++++----------- quickstart/mlflow_tracking.py | 2 +- 3 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 Caddyfile diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..d6dfaf3 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,22 @@ +# Minio Console +s3.localhost:9001 { + handle_path /* { + reverse_proxy s3:9001 + } +} + +# Minio API +s3.localhost:9000 { + handle_path /* { + reverse_proxy s3:9000 + } +} + +mlflow.localhost { + basicauth /* { + root JDJhJDEwJEVCNmdaNEg2Ti5iejRMYkF3MFZhZ3VtV3E1SzBWZEZ5Q3VWc0tzOEJwZE9TaFlZdEVkZDhX # root hiccup + } + handle_path /* { + reverse_proxy mlflow:5000 + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index be7dcd3..a190760 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,19 +1,35 @@ version: '3.2' services: + caddy: + image: caddy:2-alpine + container_name: caddy + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - /caddy/data:/data + - /caddy/config:/config + ports: + - 80:80 + - 443:443 + - 9000:9000 + - 9001:9001 + restart: unless-stopped s3: - image: minio/minio:RELEASE.2021-06-14T01-29-23Z + restart: always + image: minio/minio:latest container_name: aws-s3 ports: - - 9000:9000 + - 9000 + - 9001 environment: - - MINIO_ACCESS_KEY=${AWS_ACCESS_KEY_ID} - - MINIO_SECRET_KEY=${AWS_SECRET_ACCESS_KEY} - command: - server /date - networks: - - A + - MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID} + - MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY} + command: + server /date --console-address ":9001" volumes: - ./s3:/date + networks: + - default + - proxy-net db: restart: always image: mysql/mysql-server:5.7.28 @@ -28,8 +44,9 @@ services: volumes: - ./dbdata:/var/lib/mysql networks: - - A + - default mlflow: + restart: always container_name: tracker_mlflow image: tracker_ml build: @@ -37,14 +54,16 @@ services: dockerfile: Dockerfile ports: - "5000:5000" - environment: + 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 + entrypoint: mlflow server --backend-store-uri mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@db:3306/${MYSQL_DATABASE} --default-artifact-root s3://${AWS_BUCKET_NAME}/ -h 0.0.0.0 networks: - - A - entrypoint: ./wait-for-it.sh db:3306 -t 90 -- mlflow server --backend-store-uri mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@db:3306/${MYSQL_DATABASE} --default-artifact-root s3://${AWS_BUCKET_NAME}/ -h 0.0.0.0 + - proxy-net + - default + networks: - A: - driver: bridge \ No newline at end of file + default: + proxy-net: diff --git a/quickstart/mlflow_tracking.py b/quickstart/mlflow_tracking.py index 386a2d8..d308c86 100644 --- a/quickstart/mlflow_tracking.py +++ b/quickstart/mlflow_tracking.py @@ -5,7 +5,7 @@ from mlflow import mlflow,log_metric, log_param, log_artifacts if __name__ == "__main__": with mlflow.start_run() as run: - mlflow.set_tracking_uri('http://localhost:5000') + mlflow.set_tracking_uri('https://mlflow.localhost') print("Running mlflow_tracking.py") log_param("param1", randint(0, 100))