我正在设计一个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
答案 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