Paddle 给1.8.2的gpu镜像新增用户后,通过新用户来启动镜像会报错

yhuiod9q  于 2022-04-21  发布在  Java
关注(0)|答案(3)|浏览(197)
  • 版本、环境信息:

   1)PaddlePaddle版本:docker镜像1.8.2-gpu-cuda10.0-cudnn7 以及1.7.1-gpu-cuda10.0-cudnn7
   4)系统环境:centos7的docker环境

  • 复现信息:
  1. 通过dockerfile或者通过commit方式新增用户并构建新镜像:
    useradd -d /home/newuserxxx -m -g users -s /bin/bash newuserxxx
  2. 通过docker run -it --rm -u1000:100 new_image bash进入新镜像示例化的容器,会提示
    bash: /root/.bashrc: Permission denied
    如下图所示:

  1. 若通过docker run -it --rm new_image bash直接进入容器,而不指定用户,默认登录的是root账号。进入容器后再从root账号su - new_user是正常的。
x8diyxa7

x8diyxa71#

根据分析,应该是下面这行代码的问题,没有考虑到可能会使用其他用户
https://github.com/PaddlePaddle/Paddle/blob/develop/tools/dockerfile/Dockerfile.ubuntu#L220

CMD source ~/.bashrc

hkmswyz6

hkmswyz62#

可能是这个原因导致的,这个使用场景比较小众我们没有测试到,我们先记下后续再进行修改。你可以先在自己本地在dockerfile中删除这句构建试试。

p3rjfoxz

p3rjfoxz3#

@tianshuo78520a 后来基于cuda10.1镜像来构建,只安装了python3.6,然后用pip来安装paddle-gpu,镜像体积也减少了很多

相关问题