web-dev-qa-db-ja.com

コマンド '/ bin / sh -cがゼロ以外のコードを返しました:127

私はdockerが初めてなので、これを間違っているかもしれませんが、次のようなDockerfileを介してTomcat6をインストールしようとしています。

FROM rhel7:latest
RUN cd /tmp
RUN "wget", "http://www.us.Apache.org/dist/Tomcat/tomcat-6/v6.0.44/bin/Apache-Tomcat-6.0.44.tar.gz"
RUN tar xzf Apache-Tomcat-6.0.44.tar.gz
RUN mv Apache-Tomcat-6.0.44 /usr/local/Tomcat6
RUN cd /usr/local/Tomcat6
Run ./bin/start.sh

次の3行目の失敗:

  RUN "wget", "http://www.us.Apache.org/dist/Tomcat/tomcat-6/v6.0.44/bin/Apache-Tomcat-6.0.44.tar.gz"

ドッカービルドを実行すると、次のようになります。 this

私は使用しています:

  • Oracle Virtual Box V4.3.28 r100309
  • RHEL7のDocker

助けてくれてありがとう。

30
user5201726

エラーのある画像の解決策は、wget CMD RUN yum -y install wgetの前に追加することです

このように書くと、結果は同じになりますが、実行方法が異なります。

 RUN wget http://www.us.Apache.org/dist/Tomcat/tomcat-6/v6.0.44/bin/Apache-Tomcat-6.0.44.tar.gz

RUNコマンドでは引用符とコンマを使用しないでください。

16
Dharmit

シェルコマンドの終了コード127は、「コマンドが見つかりません」という意味です。したがって、あなたの場合、引用符内の「wget」はDockerの実行時に見つからないようです。

場合によっては、一部のベースDockerイメージにはw​​getがないため、wget(または欠落しているコマンドラインツール)をインストールするコマンドを最初にDockerfileで実行する必要があります。失敗したコマンドの前に次のような行を追加します。

RUN yum install -y wget
15
Rob Bailey

同じ行に必要なすべてのライブラリとパッケージを追加できることを忘れないでください

RUN cd /tmp \
&& apt-get update \
&& apt-get install -y curl apt-utils wget unzip\
&& rm -rf /var/lib/apt/lists/*
1