Невозможно подключить сервер Mlflow к моему изображению проекта mlflow - PullRequest
0 голосов
/ 08 января 2020

Моя последняя цель - запустить эксперимент с API.

эксперимент получен из: https://github.com/mlflow/mlflow/tree/master/examples/tensorflow/tf2, но экспортировать файл в мой пользовательский git, где я его клонирую, в изображение ниже ->

У меня есть 2 изображения в моем docker compose: tree project:

|_app/
| |_Dockerfile
|
|_mlflow/
| |_Dockerfile
|
|_docker-compose.yml

app / Dockerfile

FROM continuumio/anaconda3

ENV APP_HOME ./
WORKDIR ${APP_HOME}
RUN conda config --append channels conda-forge
RUN conda install --quiet --yes \
    'mlflow' \
    'psycopg2' \
    'tensorflow'
RUN pip install pylint
RUN pwd;ls \
&& git clone https://github.com/MChrys/QuickSign.git 
RUN pwd;ls \
    && cd QuickSign \
    && pwd;ls

COPY . .

#RUN conda install jupyter 
#CMD jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root --no-browser
CMD cd QuickSign && mlflow run .

mlflow / Dockerfile

FROM python:3.7.0

RUN pip install mlflow

RUN mkdir /mlflow/

CMD mlflow server \
    --backend-store-uri /mlflow \
    --host 0.0.0.0

docker -compose.yml

version: '3'
services:
  notebook:
    build:
      context: ./app
    ports:
      - "8888:8888"
    depends_on: 
      - mlflow
    environment: 
      MLFLOW_TRACKING_URI: 'http://mlflow:5000'
  mlflow:
    build:
      context: ./mlflow
    expose: 
      - "5000"
    ports:
      - "5000:5000"

когда я docker-compose up получаю изображение:

notebook_1_74059cdc20ce |     response = requests.request(**kwargs)
notebook_1_74059cdc20ce |   File "/opt/conda/lib/python3.7/site-packages/requests/api.py", line 60, in request
notebook_1_74059cdc20ce |     return session.request(method=method, url=url, **kwargs)
notebook_1_74059cdc20ce |   File "/opt/conda/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
notebook_1_74059cdc20ce |     resp = self.send(prep, **send_kwargs)
notebook_1_74059cdc20ce |   File "/opt/conda/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
notebook_1_74059cdc20ce |     r = adapter.send(request, **kwargs)
notebook_1_74059cdc20ce |   File "/opt/conda/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
notebook_1_74059cdc20ce |     raise ConnectionError(e, request=request)
notebook_1_74059cdc20ce | requests.exceptions.ConnectionError: HTTPConnectionPool(host='mlflow', port=5000): Max retries exceeded with url: /api/2.0/mlflow/runs/create (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd5db4edc50>: Failed to establish a new connection: [Errno 111] Connection refused'))

Проблема выглядит так, что я запускаю проект, который не найден в изображениях сервера, так как я запускаю его в образе приложения, но я не знаю, как это выяснить, я должен запустить эксперимент из будущего flask app

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Проблема возникла из docker для windows, я не смог заставить работать docker сочинять на нем, но нет проблем с его сборкой при запуске на виртуальной машине с Ubuntu.

0 голосов
/ 08 января 2020

Похоже, сервер недоступен из приложения. Я предполагаю, что docker -compose.yml используется проектом, запущенным в приложении, поэтому он пытается связаться с сервером mlflow по адресу MLFLOW_TRACKING_URI: 'http://mlflow: 5000 '. http://mlflow: 5000 домен, который вы настроили? Откуда он должен быть доступен?

...