【发布时间】:2015-05-06 21:52:44
【问题描述】:
给定以下 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。但这似乎更像是一种 hack。
【问题讨论】:
-
在
COPY和MKDIR之前我认为你应该有一个USER john -
也许这可行,但我必须创建完整的目录结构并复制,所以这是不可接受的。
标签: docker file-permissions dockerfile