如何使用dockerfile添加用户?

时间:2016-10-04 14:46:09

标签: docker 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

2 个答案:

答案 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