作者:手机用户2502875747 | 来源:互联网 | 2023-01-23 14:52
是否可以像使用RUN命令那样将COPY命令链接在一起?
链接运行命令示例:
RUN echo "root:user_2017" | chpasswd && \
groupadd -g 1000 user && \
useradd -u 1000 -m -s /bin/bash user && \
passwd -d user
如果必须执行从主机到映像的许多副本,是否可以像下面显示的那样阻止引入多个中间映像?我知道下面显示的内容行不通,因为当&&
使用来将多行绑定在一起时,每一行都需要是一个单独的命令。
COPY ./folder1A/* /home/user/folder1B/ && \
./folder2A/* /home/user/folder2B/ && \
./folder3A/* /home/user/folder3B/ && \
./folder4A/* /home/user/folder4B/ && \
BMitch..
6
由于COPY
命令不能被链接,因此通常最好以易于复制到映像中的方式来构造上下文(要复制的目录)。
所以代替:
COPY ./folder1A/* /home/user/folder1B/ && \
./folder2A/* /home/user/folder2B/ && \
./folder3A/* /home/user/folder3B/ && \
./folder4A/* /home/user/folder4B/ && \
将这些文件夹放入公共目录并运行:
COPY user/ /home/user/
如果要复制文件,则可以将多个文件复制到一个目标中:
COPY file1.zip file2.txt file3.cfg /target/app/
如果尝试使用目录执行此操作,则会发现docker将其展平一个级别,因此建议将目录重新组织到一个公共的父文件夹中。
1> BMitch..:
由于COPY
命令不能被链接,因此通常最好以易于复制到映像中的方式来构造上下文(要复制的目录)。
所以代替:
COPY ./folder1A/* /home/user/folder1B/ && \
./folder2A/* /home/user/folder2B/ && \
./folder3A/* /home/user/folder3B/ && \
./folder4A/* /home/user/folder4B/ && \
将这些文件夹放入公共目录并运行:
COPY user/ /home/user/
如果要复制文件,则可以将多个文件复制到一个目标中:
COPY file1.zip file2.txt file3.cfg /target/app/
如果尝试使用目录执行此操作,则会发现docker将其展平一个级别,因此建议将目录重新组织到一个公共的父文件夹中。