为什么docker以root用户身份构建复制入口点脚本?

为什么docker以root用户身份构建复制入口点脚本?,docker,dockerfile,Docker,Dockerfile,切换用户后,当我将entrypoint.sh复制到主目录时,为什么docker build仍将其分配给root用户: FROM ubuntu:20.04 SHELL ["/bin/bash", "-c"] ARG user=hakond ARG home=/home/$user RUN useradd --create-home -s /bin/bash $user \ && echo $user:ubuntu | chpa

切换用户后,当我将
entrypoint.sh
复制到主目录时,为什么
docker build
仍将其分配给
root
用户:

FROM ubuntu:20.04
SHELL ["/bin/bash", "-c"]
ARG user=hakond
ARG home=/home/$user
RUN useradd --create-home -s /bin/bash $user \
        && echo $user:ubuntu | chpasswd \
        && adduser $user sudo
WORKDIR $home
USER $user
COPY entrypoint.sh $home
RUN ls -l entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"] 
如果我构建这个(作为用户
hakon
),输出是:

$ ls -l entrypoint.sh 
-rwxr-xr-x 1 hakon hakon 24 juli   8 14:16 entrypoint.sh
$ echo $USER
hakon
$ docker build -t debug_entrypoint .
[...]
Step 8/10 : COPY entrypoint.sh $home
 ---> 5f6d16e80d2c
Step 9/10 : RUN ls -l entrypoint.sh
 ---> Running in ee919e65e860
-rwxr-xr-x 1 root root 24 Jul  8 12:16 entrypoint.sh
[...]
请注意,文件
entrypoint.sh
属于
root
(而不是像我预期的那样属于
hakond

使用可选标志--chown=:和ADD或COPY命令

作为复制命令,默认情况下使用
root
user

COPY --chown=$user entrypoint.sh $home
输出应该是

Step 13/14 : RUN ls -l entrypoint.sh
 ---> Running in 231123a8899b
-rwxrwxr-x 1 hakond hakond 0 Jul  8 14:28 entrypoint.sh