我定义了以下泊坞窗图像:
FROM python:3.6
RUN pip install --upgrade pip
RUN pip install --upgrade mlflow
ENTRYPOINT mlflow server --host 0.0.0.0 --file-store /mnt/mlruns/
并构建一个名为mlflow-server
. 接下来,我从本地计算机启动此服务器:
docker run --rm -it -p 5000:5000 -v ${PWD}/mlruns/:/mnt/mlruns mlflow-server
接下来,我定义以下函数:
def foo(x, with_af=False):
mlflow.start_run()
mlflow.log_param("x", x)
print(x)
if with_af:
with open(str(x), 'wb') as fout:
fout.write(os.urandom(1024))
mlflow.log_artifact(str(x))
mlflow.log_artifact('./foo.data')
mlflow.end_run()
从我运行的同一目录中foo(10)
,参数被正确记录。但是,foo(10, True)
会产生以下错误:PermissionError: [Errno 13] Permission denied: '/mnt'
. 似乎log_artifact
试图直接将文件保存在本地文件系统上。
知道我在做什么错吗?