Atl*_*ic0 33 docker dockerfile
如何添加具有Dockerfile的用户 - 以下操作无效.
USER vault
WORKDIR /usr/local/bin/vault
Run Code Online (Sandbox Code Playgroud)
我的完整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
Run Code Online (Sandbox Code Playgroud)
pl_*_*ock 43
使用useradd而不是其交互式adduser添加用户.
RUN useradd -ms /bin/bash vault
Run Code Online (Sandbox Code Playgroud)
下面的命令不会创建用户.
USER vault
WORKDIR /usr/local/bin/vault
Run Code Online (Sandbox Code Playgroud)
它会使用vault用户
USER指令设置运行映像时要使用的用户名或UID,以及Dockerfile中跟随它的任何RUN,CMD和ENTRYPOINT指令.
注意:确保这bash是默认shell.
如果是默认shell,/bin/sh你可以这样做:
RUN ln -sf /bin/bash /bin/sh
RUN useradd -ms /bin/bash vault
Run Code Online (Sandbox Code Playgroud)
要添加组并关联新用户,请使用下面的代码。
FROM <base image>
RUN groupadd -g 2000 go \
&& useradd -m -u 2001 -g go go
USER go
Run Code Online (Sandbox Code Playgroud)
或者
RUN addgroup -g 1001 -S appuser && adduser -u 1001 -S appuser -G appuser
Run Code Online (Sandbox Code Playgroud)
如果您还希望您的用户有密码,请将此用于基于 Alpine 的图像:
FROM alpine
ARG USER=usernameThatYouWant
ARG PASS="some password"
RUN adduser -D $USER && echo "$USER:$PASS" | chpasswd
Run Code Online (Sandbox Code Playgroud)
ARG行就在那里,因此您可以(可选)在构建映像时选择另一个用户名和密码(无需更改 Dockerfile)。-D所以adduser还没有设置密码。adduser,将变成交互式并要求输入密码。它不接受来自常规 STDIN 的密码,因此也不能选择通过管道传输密码。echo "$USER:$PASS" | chpasswd最后设置密码。-s /path/to/some/shellin设置 shell adduser,因为 Alpine 只有ash和sh可用。无论如何,这两者都只是符号链接busybox。对于基于 Ubuntu 的映像,请使用以下命令:
FROM ubuntu
ARG USER=usernameThatYouWant
ARG PASS="some password"
RUN useradd -m -s /bin/bash $USER && echo "$USER:$PASS" | chpasswd
Run Code Online (Sandbox Code Playgroud)
我在用:
useradd因为这里这是非交互式使用的程序。-m这样我们用户就有了一个 homedir。-s /bin/bash以便用户将 bash 作为默认 shell。(对于大多数其他基础映像,您还需要使用 Ubuntu-method )
| 归档时间: |
|
| 查看次数: |
56174 次 |
| 最近记录: |