我正在使用“MLflow”项目,一个用例就是这样。

The MLflow running target/environment is docker.
Data lives on aws s3
When developing on a laptop. The laptop has an aws profile to access data.
(When developing on EC2, the EC2 have role attached to access s3)

目前,我在主机上存储的凭据为“〜/ .aws / credential”,并且可以访问主机中的s3。问题是:在MLflow项目中,如何使运行在docker上的程序访问s3文件?

请注意,问题不是“一般”如何设置 docker 。问题是在MLflow项目中进行aws设置/配置的推荐方法。谢谢!

最佳答案

您可以将volume用于应用程序数据。

具体来说,对于AWS凭证,您可以安装凭证目录本身,

显然,您需要确保为aws或mlflow安装任何必需的依赖项。但是,这里是添加用户和将凭据作为卷安装所需的部分。

首先,在您的Dockerfile中,

# add user with home directory
RUN useradd -m mlflow

# set default user
USER mlflow

# set working directory
WORKDIR /home/mlflow

然后在运行期间安装
docker run -it -v "${HOME}"/.aws:/home/mlflow/.aws \
  mlflow

注意:确保永远不要在任何Docker容器内硬编码凭据

关于docker - 在使用docker环境的MLflow项目中,如何设置AWS凭证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56194788/

10-12 00:37