6

私は非常に単純なことをしています。これが私のものDockerfileです:

FROM alpine:latest

ADD hello.sh /bin/hello
RUN chmod +x /bin/hello

CMD /bin/hello

次に、イメージをビルドします。

docker build -t hello .

次に、イメージを実行します。

docker run hello

出力は次のとおりです。

/bin/sh: /bin/hello: not found

なぜこうなった?私が実行した場合:

docker run hello cat /bin/hello

スクリプトの内容が表示され、さらに混乱します。

4

5 に答える 5

4

alpine イメージの代わりに ubuntu イメージを使用することで問題が解決しました。正確な理由はわかりませんが、ファイルのユーザー/許可ビットがコピーされて正しく解釈されないことに関係している可能性があります。

于 2016-03-15T05:11:36.157 に答える
4

これは、スクリプトを実行しようとしているように聞こえますがbash、デフォルトでは alpine には含まれていませんbashsh代わりに、シバン行を に変更して、スクリプトを実行する必要があります#!/bin/sh

実際には、スクリプトは実行されていますが、実際に/bin/bashは存在しないと言っています。

于 2020-05-20T22:07:05.700 に答える