使用perl安装构builddocker映像时出错

我是新来的docker,我正在试图build立与perl安装docker的形象,但不知道如何解决这个错误。

Dockerfile:

FROM amazonlinux RUN mkdir /shared RUN cd /shared RUN yum -y install sudo RUN cd /shared RUN echo "Installing Perl." RUN sudo yum -y update; yum -y install gcc RUN yum -y install wget RUN wget http://www.cpan.org/src/5.0/perl-5.22.1.tar.gz RUN tar -xzf perl-5.22.1.tar.gz RUN cd perl-5.22.1 RUN /shared/perl-5.22.1/Configure -des -Dprefix=/opt/perl-5.22.1/localperl RUN make RUN make test RUN make install RUN echo "Perl installation complete." 

而不是/shared/perl-5.22.1/Configure我试图给./configure以及但我得到相同的错误没有这样的文件或目录

错误:

 /bin/sh: /shared/perl-5.22.1/Configure: No such file or directory The command '/bin/sh -c /shared/perl-5.22.1/Configure -des -Dprefix=/opt/perl-5.22.1/localperl' returned a non-zero code: 127 ish-mac:testanalyse ish$ 

谁能告诉我如何解决这个问题。

每个Dockerfile RUN命令都在其自己的shell中运行。 所以,当你做一些像RUN cd /shared ,后续的RUN命令将不会在这个工作目录中运行。

你想在这种情况下使用的是WORKDIR指令( https://docs.docker.com/engine/reference/builder/#workdir )。 您还可以通过利用ADD指令来合并和缩短一些事情。 一个更简洁的Dockerfile可以做你以后的事情:

 FROM amazonlinux WORKDIR /shared RUN yum -y install gcc ADD http://www.cpan.org/src/5.0/perl-5.22.1.tar.gz /shared RUN tar -xzf perl-5.22.1.tar.gz RUN /shared/perl-5.22.1/Configure -des -Dprefix=/opt/perl-5.22.1/localperl RUN make -C /shared/perl-5.22.1 RUN make -C /shared/perl-5.22.1 test RUN make -C /shared/perl-5.22.1 install 

例如,构build上下文已经以root身份运行,所以不需要sudo 。 使用ADD我们可以直接从URL添加,不需要wget 。 而make工具有一个-C选项来指定make的工作目录。

这应该让你更接近你以后的东西。 但是由于其他原因,构build仍然失败(如果你被卡住,你应该打开另一个问题)。