2017-10-19 10 views
2

私はサーバーアプライアンスを実装するためのDockerfileを作っています。実行されないドッカーファイル

私のファイルは完全であると信じていましたが、実装する際にエラーが返されました。

/docker-entrypoint.sh: line 22: /opt/author/application/bin/start-ppliance.sh: Permission denied 
/docker-entrypoint.sh: line 22: exec: /opt/author/application/bin/start-appliance.sh: cannot execute: Permission denied 

Dockerファイル自体では、以下を実行します。

RUN chmod -R 0750 /opt/author/ 
RUN chown -R USER1:USER1 /opt/author/ 

同様に、

USER USER1 

Dockerファイル自体の最後の行は次のとおりです。

CMD ["/opt/author/application/bin/start-appliance.sh", "run"] 

ファイルがコンテナ内にあり、デフォルトユーザーが所有しているため、このエラーがなぜ発生するのかはっきりしません。

+0

複数行ブロックのコードをフォーマットするには、エディタ(ブロックを選択した状態)の '{}'ボタン、または4つのスペースインデントを使用します。 –

+2

Dockerfile全体を投稿できますか? – MatTheWhale

+1

デバッグのために、 'ls -al/opt/author/application/bin /'、 'echo $(whoami)'でいくつかのRUNコマンドを追加すると、何が起こっているのか理解するのに役立つかもしれません。 –

答えて

1

ご存じのように、これは通常、ファイルに実行ビットが設定されていない場合に発生しますが、chmod 750は理論上はこれを処理する必要があります。実際に問題が発生した場合は、別のCMDdocker run)の時間(例:docker run -it <image> sh)を渡し、スクリプトのアクセス許可をls -lで確認するだけです。多くの場合、ビットセットを実行していないことが原因です。

VOLUMEのようなものが使用しているRUNの効果を破棄している可能性がある場合に備えて、完全なDockerfileで質問を明確にすることをおすすめします。

+0

コンテナ\ wドッカーrun -u container_name -ti --entrypoint sh repo/container:ve.rs.io.nを実行し、xビットが設定された操作ファイルを確認します。 Dockerfileの実装セクションは次のとおりです。 – Kyle

関連する問題