COPY失败:未指定源文件

时间:2019-06-13 07:27:03

标签: docker google-cloud-build

我正在设计一个dockerfile做一些事情。列出以下在构建文件时引发错误的步骤。

我正在下载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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您已经设置了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