423 Star 4.3K Fork 424

GVPPaddlePaddle / Paddle

 / 详情

从 paddlepaddle/paddle:latest-noavx-openblas 构建的镜像以非 root 用户运行出错!

已完成
创建于  
2021-03-27 01:35

源自github用户Zhaoyangzhen:
Dockerfile 里 useradd 的部分:
"
FROM paddlepaddle/paddle:latest-noavx-openblas

RUN groupadd -g 1000 user
RUN useradd -s /sbin/nologin -g 1000 -G user -u 1000 -r user
RUN echo 'user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

RUN echo 'user:hHjkyJKY&JKUhgkjkdu8d89fU7653%i#^86HJj' | chpasswd
RUN echo 'root:vMSdldhY9iPfJqAuN2MyE215VrP26GmsJEzkQx' | chpasswd
RUN mkdir -p /home/user/project

WORKDIR /home/user/project
"

按照如上方法构建好镜像 test/paddle 镜像以后

执行docker run -ti -u user test/paddle:latest /bin/bash 启动镜像后
在这个容器里面:
执行 echo $HOME 会输出 /root
执行 cd ~ 的时候会出现 bash: cd: /root: Permission denied
正常情况下 :
echo $HOME 应该输出的是 /home/user
cd ~ 应该会进到 /home/user 目录

这个镜像是做过什么限制吗?
可以解决吗?

评论 (8)

PaddlePaddle-Gardener 创建了任务
展开全部操作日志

源自github用户typhoonzero:
您好,目前镜像还没有考虑docker 内使用其他用户的场景,此问题我会继续跟进,可以暂时先用容器内root运行。

源自github用户Zhaoyangzhen:
好吧,感谢您的回答!

可以强制改变 $HOME 吗?

源自github用户Zhaoyangzhen:
请问从源码编译可以解决这个问题吗?或者有其他解决方案吗?
急,在线等。。

源自github用户Zhaoyangzhen:
从源码安装的镜像是 centos 还是 ubuntu?

源自github用户typhoonzero:
docker run -e "HOME=xxx"可以在run的时候改变。

源自github用户zhou-wj:

您好,目前镜像还没有考虑docker 内使用其他用户的场景,此问题我会继续跟进,可以暂时先用容器内root运行。

请问现在docker内可以使用非root用户运行了吗?在服务器上只能在docker下用当前用户运行,请问有什么解决方案可以使用paddle吗?

paddle版本:paddlepaddle-gpu==1.4.1.post97
非root用户运行报错如下:

import paddle
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/python3/lib/python3.6/site-packages/paddle/init.py", line 25, in
import paddle.dataset
File "/usr/local/python3/lib/python3.6/site-packages/paddle/dataset/init.py", line 18, in
import paddle.dataset.mnist
File "/usr/local/python3/lib/python3.6/site-packages/paddle/dataset/mnist.py", line 23, in
import paddle.dataset.common
File "/usr/local/python3/lib/python3.6/site-packages/paddle/dataset/common.py", line 55, in
must_mkdirs(DATA_HOME)
File "/usr/local/python3/lib/python3.6/site-packages/paddle/dataset/common.py", line 48, in must_mkdirs
os.makedirs(DATA_HOME)
File "/usr/local/python3/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/python3/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/.cache'

源自github用户AmyHoney:
同问,现在docker内可以使用非root用户运行paddlepaddle了吗?有什么解决办法能够在非root用户下运行paddlepaddle?
paddle版本:docker pull paddlepaddle/paddle:latest-gpu-cuda10.0-cudnn7

File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dataloader/init.py", line 17, in
from . import dataset
File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dataloader/dataset.py", line 18, in
import paddle.dataset.common
File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/dataset/init.py", line 18, in
import paddle.dataset.mnist
File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/dataset/mnist.py", line 23, in
import paddle.dataset.common
File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/dataset/common.py", line 54, in
must_mkdirs(DATA_HOME)
File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/dataset/common.py", line 47, in must_mkdirs
os.makedirs(DATA_HOME)
File "/usr/local/python3.5.1/lib/python3.5/os.py", line 231, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/python3.5.1/lib/python3.5/os.py", line 231, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/python3.5.1/lib/python3.5/os.py", line 241, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/root/.cache'

PaddlePaddle-Coordinator 任务状态待办的 修改为已完成
PaddlePaddle-Coordinator 添加了
 
User
标签

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Python
1
https://gitee.com/paddlepaddle/Paddle.git
git@gitee.com:paddlepaddle/Paddle.git
paddlepaddle
Paddle
Paddle

搜索帮助