1 Commits

Author SHA1 Message Date
Tomasz Dłuski
6a93c977e4 provide caddyfile basic auth for the mlflow 2021-11-19 22:16:07 +01:00
3 changed files with 81 additions and 48 deletions

22
Caddyfile Normal file
View File

@@ -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
}
}

View File

@@ -1,58 +1,69 @@
version: "3.9" version: '3.2'
services: services:
s3: caddy:
image: minio/minio:RELEASE.2021-08-25T00-41-18Z.hotfix.55efceab5 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 restart: unless-stopped
s3:
restart: always
image: minio/minio:latest
container_name: aws-s3 container_name: aws-s3
ports: ports:
- "9000:9000" - 9000
- "9001:9001" - 9001
environment: environment:
- MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID} - MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
- MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY} - MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
command: server /data --console-address ":9001" command:
networks: server /date --console-address ":9001"
- internal
- public
volumes: volumes:
- minio_volume:/data - ./s3:/date
networks:
- default
- proxy-net
db: db:
image: mysql/mysql-server:5.7.28 restart: always
restart: unless-stopped image: mysql/mysql-server:5.7.28
container_name: mlflow_db container_name: mlflow_db
expose: expose:
- "3306" - "3306"
environment: environment:
- MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER} - MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
volumes: volumes:
- db_volume:/var/lib/mysql - ./dbdata:/var/lib/mysql
networks: networks:
- internal - default
mlflow: mlflow:
container_name: tracker_mlflow restart: always
image: tracker_ml container_name: tracker_mlflow
restart: unless-stopped image: tracker_ml
build: build:
context: ./mlflow context: ./mlflow
dockerfile: Dockerfile dockerfile: Dockerfile
ports: ports:
- "5000:5000" - "5000:5000"
environment: environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- AWS_DEFAULT_REGION=${AWS_REGION} - AWS_DEFAULT_REGION=${AWS_REGION}
- MLFLOW_S3_ENDPOINT_URL=http://s3:9000 - MLFLOW_S3_ENDPOINT_URL=http://s3:9000
networks: 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
- public networks:
- internal - proxy-net
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 - default
networks: networks:
internal: default:
public: proxy-net:
driver: bridge
volumes:
db_volume:
minio_volume:

View File

@@ -5,7 +5,7 @@ from mlflow import mlflow,log_metric, log_param, log_artifacts
if __name__ == "__main__": if __name__ == "__main__":
with mlflow.start_run() as run: 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") print("Running mlflow_tracking.py")
log_param("param1", randint(0, 100)) log_param("param1", randint(0, 100))