2017-06-07 3 views
0

ドッカーには新しく、このエラーを修正する方法は正確にはわかりません。perlをインストールしたドッカー画像を構築する際にエラーが発生しました

Dockerfile:エラー

私も./configureをを与えることを試みたが、私は同じエラーにそのようなファイルやディレクトリを取得しない代わりに/shared/perl-5.22.1/Configureの

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." 

/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$ 

誰でもこの問題を解決する方法を教えてもらえますか?

答えて

1

DockerfileRUNコマンドは、独自のシェルで実行されます。したがって、RUN cd /sharedのような操作を行うと、その後のRUNコマンドはその作業ディレクトリ内では実行されません。

この場合に使用するものはWORKDIRです(https://docs.docker.com/engine/reference/builder/#workdir)。また、ADD命令を利用していくつかのものを結合して短縮することもできます。 Dockerfileより簡潔であるかもしれないあなたが後にしている何をしますsudoの必要がないので、

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 

は、例えば、ビルドコンテキストがすでにルートとして実行されています。 ADDではURLから直接追加することができ、wgetは必要ありません。また、makeユーティリティには、makeの作業ディレクトリを指定するための-Cオプションがあります。

これはあなたの後ろにあなたに近づくはずです。しかし、ビルドはまだ他の理由で失敗しています(あなたが立ち往生している場合は別の質問を開くべきでしょう)。

+0

答えてくれてありがとうございますが、makeコマンドで失敗してもmakefileは見つかりませんでした。ステップ17/20:RUN make -C /shared/perl-5.22.1/ ---> 2766b0c8e9a5の実行 make: '/shared/perl-5.22.1 'ディレクトリの入力 make:'/shared/perl-5.22.1 ' make:***ターゲットが指定されておらず、メイクファイルが見つかりません。やめる。 コマンド '/ bin/sh -c make -C /shared/perl-5.22.1/'がゼロ以外のコードを返しました:2 – nadish

+0

あなたは最初の質問を過ぎています。私はあなたがそれを解決することができない場合、この問題の新しい質問を開きます。この前にconfigureスクリプトが失敗しているか、またはフォルダがまだ正しくないようです。 –

関連する問題