最佳答案
鉴于以下 Dockerfile
FROM ubuntu
RUN groupadd mygroup
RUN useradd -ms /bin/bash -G mygroup john
MKDIR /data
COPY test/ /data/test data
RUN chown -R john:mygroup /data
CMD /bin/bash
在复制的测试目录中,我将文件权限设置为770。
如果在容器中执行 su john
,则无法访问测试目录中的任何文件或子目录。这个问题似乎与 aufs 文件系统中的所有权有关,其中复制的目录仍然为 root 用户所有,权限设置为770。
是否有解决此问题的方法来正确设置权限?可以在复制之前将原始目录的权限设置为容器用户的 uid。但这看起来更像是黑客干的。