据我了解,目前(2019 年 5 月)mlflow 支持在 docker 环境中运行项目;但是,它需要已经构建好的 docker 镜像。这使得 docker 镜像构建成为一个单独的工作流程。从 Dockerfile 运行 mlflow 项目的建议方法是什么?
是否有计划支持在 mlflow 中本地定位 Dockerfile?使用 image vs Dockerfile 有哪些注意事项?谢谢!
据我了解,目前(2019 年 5 月)mlflow 支持在 docker 环境中运行项目;但是,它需要已经构建好的 docker 镜像。这使得 docker 镜像构建成为一个单独的工作流程。从 Dockerfile 运行 mlflow 项目的建议方法是什么?
是否有计划支持在 mlflow 中本地定位 Dockerfile?使用 image vs Dockerfile 有哪些注意事项?谢谢!
Mlflow 在他们的Github 页面上提供了他们使用的 Dockerfile 。您可以以此为起点。一旦您对 Dockerfile 的外观感到满意,您就可以使用 docker build 为其生成映像。
如果您对默认图像感到满意,请使用它。如果您需要调整工作流程,请编辑 Dockerfile 并从中构建映像。
还有一个来自 mlflow 研讨会的 Dockerfile,它很有帮助。https://github.com/afranzi/mlflow-workshop
#FROM python:3.7.0
# https://hub.docker.com/r/frolvlad/alpine-python-machinelearning/
FROM frolvlad/alpine-python-machinelearning
LABEL maintainer="Albert Franzi"
ENV MLFLOW_HOME /opt/mlflow
ENV MLFLOW_VERSION 0.7.0
ENV SERVER_PORT 5000
ENV SERVER_HOST 0.0.0.0
ENV FILE_STORE ${MLFLOW_HOME}/fileStore
ENV ARTIFACT_STORE ${MLFLOW_HOME}/artifactStore
RUN pip install mlflow==${MLFLOW_VERSION} && \
mkdir -p ${MLFLOW_HOME}/scripts && \
mkdir -p ${FILE_STORE} && \
mkdir -p ${ARTIFACT_STORE}
COPY scripts/run.sh ${MLFLOW_HOME}/scripts/run.sh
EXPOSE ${SERVER_PORT}/tcp
VOLUME ["${MLFLOW_HOME}/scripts/", "${FILE_STORE}", "${ARTIFACT_STORE}"]
WORKDIR ${MLFLOW_HOME}
ENTRYPOINT ["./scripts/run.sh"]
并运行.sh
#!/bin/sh
mlflow server \
--file-store $FILE_STORE \
--default-artifact-root $ARTIFACT_STORE \
--host $SERVER_HOST \
--port $SERVER_PORT