我使用以下命令创建用户和主目录,但由于某种原因,新创建的主目录由 root 用户拥有:
useradd --user-group --create-home --base-dir /opt --shell /bin/bash testuser
Run Code Online (Sandbox Code Playgroud)
我正在创建一个基于 eclipse-temurin:11.0.15_10-jre-focal(基于 Ubuntu 20.04)的 Docker 映像。上面的命令包含在我的 Dockerfile 中,奇怪的是,当我在 Windows 机器上本地构建它时,主目录由新用户拥有,但是当我使用 Azure、DevOps 管道构建它时,主目录目录归 root 所有。我不明白什么会导致 useradd 命令表现不同。我发现帖子中存在与 NFS 卷上的主目录相关的类似问题,但这里的情况并非如此:/opt 在容器内。
我在 Ubuntu 22.04 上的 docker.io 上遇到了类似的问题,使用这个简单的 Dockerfile,
FROM ubuntu:22.04
RUN useradd -m -u 1000 -s /bin/bash xyz && ls -l /home
RUN ls -l /home
Run Code Online (Sandbox Code Playgroud)
homedir的所有权在命令xyz之间设置为 root:root RUN。我在设置中找到了解决方案DOCKER_BUILDKIT=1,
$ DOCKER_BUILDKIT=1 docker build .
Run Code Online (Sandbox Code Playgroud)
也许您可以在 Azure 管道中定义或设置它。
| 归档时间: |
|
| 查看次数: |
3170 次 |
| 最近记录: |