如何添加具有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
答案 0 :(得分:34)
使用useradd
代替其互动adduser
添加用户。
RUN useradd -ms /bin/bash vault
下面的命令不会创建用户。
USER vault
WORKDIR /usr/local/bin/vault
它将使用vault
用户
请参阅Dockerfile User Documentation
USER指令设置运行时使用的用户名或UID 图像以及随后的任何RUN,CMD和ENTRYPOINT指令 在Dockerfile中。
注意:确保bash
是默认shell。
如果默认shell为/bin/sh
,您可以这样做:
RUN ln -sf /bin/bash /bin/sh
RUN useradd -ms /bin/bash vault
答案 1 :(得分:1)
要添加群组并关联新用户,请使用以下代码。
FROM <base image>
RUN groupadd -g 2000 go \
&& useradd -m -u 2001 -g go go
USER go