如何使用 dockerfile 添加用户?

新手上路,请多包涵

如何使用 Dockerfile 添加用户 - 以下内容不起作用。

 USER vault
WORKDIR /usr/local/bin/vault

我完整的 Dockerfile:

 FROM alpine:3.4
RUN apk update && apk add curl unzip
RUN useradd -ms /bin/bash vault

USER vault
WORKDIR /usr/local/bin/vault
ADD /vault.hcl /etc/vault/vault.hcl

RUN curl -SL https://releases.hashicorp.com/vault/0.5.0/vault_0.5.0_linux_amd64.zip > vault.zip
RUN unzip vault.zip -d /usr/local/bin && rm vault.zip

原文由 Atlantic0 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

使用 useradd 而不是其交互式 adduser 添加用户。

 RUN useradd -ms /bin/bash  vault

下面的命令不会创建用户。

 USER vault
WORKDIR /usr/local/bin/vault

它将使用 vault 用户

请参考 Dockerfile 用户文档

USER 指令设置运行映像时使用的用户名或 UID,以及 Dockerfile 中跟随它的任何 RUN、CMD 和 ENTRYPOINT 指令。

注意: 确保 bash 是默认 shell。

如果默认外壳是 /bin/sh 你可以这样做:

 RUN ln -sf /bin/bash /bin/sh
RUN useradd -ms /bin/bash  vault

原文由 pl_rock 发布,翻译遵循 CC BY-SA 3.0 许可协议

要添加组并关联新用户,请使用下面的代码。

 FROM <base image>
RUN groupadd -g 2000 go \
&& useradd -m -u 2001 -g go go
USER go

或者

RUN addgroup -g 1001 -S appuser && adduser -u 1001 -S appuser  -G appuser

原文由 Renato Coutinho 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题