gpt4 book ai didi

Docker 在挂载的卷中以 root 身份创建文件

转载 作者:IT老高 更新时间:2023-10-28 12:37:30 25 4
gpt4 key购买 nike

我正在使用 Docker (1.3.1) 在容器内构建 RPM:

docker run -v /home/matt/build:/build build-rpm /build/build-pkg.sh

这很好用(我的用户在 docker 组中,所以我不需要 sudo)并将完成的 .rpm 文件放到当前目录中。问题是该文件是由root拥有的。

我如何安排它,以便创建的文件与我运行 docker 的用户拥有相同的用户?

最佳答案

您可以尝试(在自定义镜像的 Dockerfile 中)创建一个用户并将其设置为容器使用的用户

RUN adduser --system --group --shell /bin/sh auser \
&& mkdir /home/auser/bin
USER auser

然后检查 docker run -v/home/matt/build:/build build-rpm 是否将/build 中的共享文件夹挂载为 auser


issue 2259 中提到的另一个选项:

If you chown the volume (on the host side) before bind-mounting it, it will work.
In that case, you could do:

mkdir /tmp/www
chown 101:101 /tmp/www
docker run -v /tmp/www:/var/www ubuntu stat -c "%U %G" /var/www

(Assuming that 101:101 is the UID:GID of the www-data user in your container.)

关于Docker 在挂载的卷中以 root 身份创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30052019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com