我有2个Docker镜像,第一个Dockerfile使用以下方式创建用户:
RUN useradd -m newuser
然后将其切换到用户和工作空间,如下所示:
USER newuser
WORKDIR /home/newuser/
第二个docker文件使用FROM语句从第一个图像读取。
USER
和WORKDIR
指令是否应该保留在第二个文件中而不必再次放入? 最佳答案
从此Dockerfile中:
FROM debian:8
ENV HOME /home/user
RUN useradd --create-home --home-dir $HOME user \
&& mkdir -p $HOME \
&& chown -R user:user $HOME
WORKDIR $HOME
USER user
构建并稍后运行:
$docker build -t deb .
$docker run --rm deb bash -c "pwd && whoami"
/home/user
user
现在,基于上一个图像,来自此Dockerfile:
FROM deb
ENTRYPOINT [ "sh" ]
构建并运行:
$docker build -t debb .
$docker run --rm -it debb
[container]$ pwd && whoami
/home/user
user
因此,是的,
USER
和WORKDIR
是继承的。Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 15:38:58 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 15:38:58 2016
OS/Arch: linux/amd64
关于docker - USER和WORKDIR指令是否保存在下游docker文件中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36134994/