一尘不染

如何使用dockerfile添加用户?

docker

如何使用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

阅读 3799

收藏
2020-06-17

共1个答案

一尘不染

使用useradd而非交互adduser来添加用户。

RUN useradd -ms /bin/bash  vault

以下命令不会创建user。

USER vault
WORKDIR /usr/local/bin/vault

它将使用vault用户

请参考Dockerfile用户文档

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

注意: 确保这bash是默认外壳程序。

如果使用默认外壳,则/bin/sh可以执行以下操作:

RUN ln -sf /bin/bash /bin/sh
RUN useradd -ms /bin/bash  vault
2020-06-17