COPY 失败:未指定源文件

COPY Failed: no source files were specified

我正在制作一个 docker 文件来做一些事情。列出以下在构建文件时引发错误的步骤。

我正在下载一个 tar.gz 文件,然后将其解压缩到某个位置,然后下载另一个 .zip 文件并将其解压缩到同一父目录中的辅助位置。

WORKDIR /opt/MicroFocus
RUN curl -O http://apache.mirror.amaze.com.au/nifi/1.9.2/nifi-1.9.2-bin.tar.gz
RUN tar xzvf nifi-1.9.2-bin.tar.gz
RUN curl -O https://storage.googleapis.com/xxxx/xxxxxx/NiFiIngest_12.2.0_LINUX_X86_64.zip 
RUN unzip NiFiIngest_12.2.0_LINUX_X86_64.zip
WORKDIR /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64
COPY /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64/idol-nifi-framework-12.2.0.nar /op/MicroFocus/nifi-1.9.2-bin/nifi-1.9.2/lib

但是,当我尝试构建 docker 文件时,出现以下错误

Step 36/47 : WORKDIR /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64
 ---> Using cache
 ---> e6e0e64c5490
Step 37/47 : COPY /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64/idol-nifi-framework-12.2.0.nar /op/MicroFocus/nifi-1.9.2-bin/nifi-1.9.2/lib
COPY failed: stat /var/lib/docker/tmp/docker-builder486894156/opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64/idol-nifi-framework-12.2.0.nar: no such file o
r directory

COPY 命令用于从图像内部的docker 上下文中复制。您的文件已经在图像中,因此您需要使用 OS 命令将文件从一个位置复制到另一个位置。

替换为:

COPY /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64/idol-nifi-framework-12.2.0.nar /op/MicroFocus/nifi-1.9.2-bin/nifi-1.9.2/lib

RUN cp /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64/idol-nifi-framework-12.2.0.nar /op/MicroFocus/nifi-1.9.2-bin/nifi-1.9.2/lib

因为您已经设置了 WORKDIR,您不能为源 COPY 设置路径:

WORKDIR /opt/MicroFocus/NiFiIngest_12.2.0_Linux_X86_X64
COPY idol-nifi-framework-12.2.0.nar /op/MicroFocus/nifi-1.9.2-bin/nifi-1.9.2/lib