这是您的问题:
使用
USER指令时,它会影响用于在容器内启动新命令的用户标识。因此,例如,如果您这样做:
FROM ubuntu:utopicRUN useradd -m aptlyUSER aptlyRUN echo $HOME
你得到这个:
Step 4 : RUN echo $HOME ---> Running in a5111bedf057/home/aptly
因为这些
RUN命令在容器内启动了一个新的外壳程序,该外壳程序由前面的
USER指令修改了。
使用
COPY指令时,您不会在容器内部启动进程,并且Docker无法知道外壳将暴露哪些环境变量(如果有)。
最好的选择是在可以
ENV HOME /home/aptly工作的Dockerfile中进行设置,或者将文件暂存到临时位置,然后:
RUN cp /skeleton/myfile $HOME/myfile
另外,请记住,当您
COPY归档文件时,它们将归
root; 拥有。您将需要将
chown它们明确地提供给适当的用户。



