在Dockerfile中,由ADD / chown / chmod创build的docker中无法访问自己的目录
我尝试从Dockerfile中将ssh私钥添加到Docker构build中,看起来有线连接,我无法访问它,即使它看起来像我有充分的权限
Docker Version: 1.0.0 Docker host: ubuntu 14.04
这是Dockerfile
FROM ubuntu:latest ENV HOME /home/larry RUN useradd larry && echo 'larry:docker' | chpasswd RUN echo "larry ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers # arrange ssh key ADD larry.id_rsa $HOME/.ssh/id_rsa RUN \ chmod 700 $HOME/.ssh &&\ chmod 600 $HOME/.ssh/id_rsa RUN chown -R larry:larry $HOME
当我build立了图像,并运行到容器和苏用户larry
,我得到了
$ id uid=1000(larry) gid=1000(larry) groups=1000(larry) $ ls -al total 12 drwxr-xr-x 5 larry larry 4096 Jun 21 01:29 . drwxr-xr-x 5 root root 4096 Jun 21 01:29 .. drwx------ 2 larry larry 4096 Jun 21 01:29 .ssh $ cd .ssh -su: cd: .ssh: Permission denied
也许我错过了Docker中的一些基本概念? 从正常的Unix用户的angular度来看,只需连线。
我把这个在github以及https://github.com/dotcloud/docker/issues/1295#issuecomment-46700769
你刚刚遇到了错误#6047 ,基本上说,它们是在chmod
后运行chown
问题。
以下Dockerfile将工作:
FROM ubuntu:latest ENV HOME /home/larry RUN useradd larry && echo 'larry:docker' | chpasswd RUN echo "larry ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers # arrange ssh key ADD larry.id_rsa $HOME/.ssh/id_rsa RUN chown -R larry:larry $HOME RUN \ chmod 700 $HOME/.ssh &&\ chmod 600 $HOME/.ssh/id_rsa