我正在使用“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/