在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