mirror of
				https://github.com/Toumash/mlflow-docker
				synced 2025-11-04 07:09:22 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: "3.9"
 | 
						|
services:
 | 
						|
  s3:
 | 
						|
    image: minio/minio:RELEASE.2021-11-24T23-19-33Z
 | 
						|
    restart: unless-stopped
 | 
						|
    ports:
 | 
						|
      - "9000:9000"
 | 
						|
      - "9001:9001"
 | 
						|
    environment:
 | 
						|
      - MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
 | 
						|
      - MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
 | 
						|
    command: server /data --console-address ":9001"
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
      - public
 | 
						|
    volumes:
 | 
						|
      - minio_volume:/data
 | 
						|
  db:
 | 
						|
    image: mysql/mysql-server:5.7.28
 | 
						|
    restart: unless-stopped
 | 
						|
    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:
 | 
						|
      - db_volume:/var/lib/mysql
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
  mlflow:
 | 
						|
    image: ubuntu/mlflow:2.1.1_1.0-22.04
 | 
						|
    container_name: tracker_mlflow
 | 
						|
    restart: unless-stopped
 | 
						|
    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
 | 
						|
    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
 | 
						|
  create_s3_buckets:
 | 
						|
    image: minio/mc
 | 
						|
    depends_on:
 | 
						|
      - "s3"
 | 
						|
    entrypoint: >
 | 
						|
      /bin/sh -c "
 | 
						|
      until (/usr/bin/mc alias set minio http://s3:9000 '${AWS_ACCESS_KEY_ID}' '${AWS_SECRET_ACCESS_KEY}') do echo '...waiting...' && sleep 1; done;
 | 
						|
      /usr/bin/mc mb minio/${AWS_BUCKET_NAME};
 | 
						|
      exit 0;
 | 
						|
      "
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
  wait-for-db:
 | 
						|
    image: atkrad/wait4x
 | 
						|
    depends_on:
 | 
						|
      - db
 | 
						|
    command: tcp db:3306 -t 90s -i 250ms
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
  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
 | 
						|
networks:
 | 
						|
  internal:
 | 
						|
  public:
 | 
						|
    driver: bridge
 | 
						|
volumes:
 | 
						|
  db_volume:
 | 
						|
  minio_volume:
 |