加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

建立码头图像的文件所有权

发布时间:2020-12-16 03:48:30 所属栏目:安全 来源:网络整理
导读:我想为我添加到docker镜像的文件设置文件权限.我有这个简单的Dockerfile: FROM ubuntu:utopicWORKDIR /appRUN groupadd -g 1000 baz useradd -u 1000 -g baz baz -d /app -s /bin/falseRUN chown baz:baz /app chmod g+s /app# want this to be have group

我想为我添加到docker镜像的文件设置文件权限.我有这个简单的Dockerfile:

FROM ubuntu:utopic

WORKDIR /app
RUN groupadd -g 1000 baz && useradd -u 1000 -g baz baz -d /app -s /bin/false
RUN chown baz:baz /app && chmod g+s /app
# want this to be have group baz
ADD foo /app/

使用docker build -t abc构建它.在哪里有一个foo文件.创建一个图像.但是,/ app / foo里面的权限不是我想要的.

docker run abc ls -la     
total 12
drwxr-xr-x  2 baz  baz  4096 Sep  2 23:21 .
drwxr-xr-x 37 root root 4096 Sep  3 07:27 ..
-rw-rw-r--  1 root root  419 Sep  2 21:43 foo

请注意,尽管在/ app目录中设置了the setgid bit,但文件foo不属于组baz.我可以在添加文件后使用RUN chown -R baz:baz / app,但是要创建要创建的图层的副本(请注意下面两层的大小):

docker history abc | head -n 3
IMAGE               CREATED              CREATED BY                                      SIZE                COMMENT
b95a3d798873        About a minute ago   /bin/sh -c chown -R baz:baz /app                419 B               
7e007196c116        About a minute ago   /bin/sh -c #(nop) ADD file:2b91d9890a9c392390   419 B   

有没有办法解决这个问题并且添加文件的所有权是我想要的?

最佳答案
您可以将其打包为tar-archive并为特定的UID / GID设置权限,而不是直接添加foo.这是一篇关于如何做的帖子:
https://unix.stackexchange.com/questions/61004/force-the-owner-and-group-for-the-contents-of-a-tar-file

之后,您可以在Docker镜像中解压缩(自动添加到自动).您应该看到保留权限而没有其他图层.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读