所以我的Dockerfile是这样写的:
# set env vars for linux user
ENV LINUX_USER="kbuser"
...
... # other stuff
...
USER kbuser
Run Code Online (Sandbox Code Playgroud)
但是我想用
USER $LINUX_USER
Run Code Online (Sandbox Code Playgroud)
这样,我只需要在文件的一个位置写入用户名即可。但这是行不通的。
我该如何解决?
谢谢。
使用ARG指令。根据文档:
ARG <name>[=<default value>]ARG指令定义了一个变量,用户可以在构建时使用该
--build-arg <varname>=<value>标志使用docker build命令将其传递给构建器。如果用户指定了未在Dockerfile中定义的构建参数,则构建会输出警告。
因此,您实际上可以ARG像这样使用:
ARG user=kbuser
USER $user
Run Code Online (Sandbox Code Playgroud)
您实际上可以在构建docker映像时设置参数:
docker build --build-arg user=banana .
Run Code Online (Sandbox Code Playgroud)
文档中还有更多内容,因此您最好彻底阅读。
| 归档时间: |
|
| 查看次数: |
3990 次 |
| 最近记录: |