[解決済み] 引数を受け取るシェルスクリプトでDocker Runのエントリポイントをオーバーライドする
2022-03-10 21:29:52
質問
引数を受け取るエントリーポイントのシェルスクリプトがあります。 -a -b .
私は docker-compose.yml ファイルに、tomcat のエントリポイントを上書きするように記述しています。
entrypoint: /usr/local/tomcat/entrypoint.sh -a param1 -b param2
とは何ですか? ドッカーラン の代替手段を教えてください。
docker run --entrypoint "/usr/local/tomcat/entrypoint.sh -a param1 -b param2" tomcat:jre8
は動作しません
得ることができます。
docker: Error response from daemon:
invalid header field value "oci runtime error: container_linux.go:247:
starting container process caused \"exec:
\\\"/usr/local/tomcat/entrypoint.sh -a param1 -b param2\\\":
stat /usr/local/tomcat/entrypoint.sh -a param1 -b param2:
no such file or directory\"\n".
ご参考までに。
docker run --entrypoint "/usr/local/tomcat/entrypoint.sh" tomcat:jre8
はDockerの観点からは動作しますが、明らかにスクリプトは失敗します。
解決方法は?
コマンドを引用符で囲んでいるのが原因です。
を実行すると
docker run --entrypoint "/usr/local/tomcat/entrypoint.sh -a param1 -b param2" tomcat:jre8
Dockerはこの引用符の中にあるものを、1つのスクリプトファイルとして扱います。
エラーからわかるように
stat /usr/local/tomcat/entrypoint.sh -a param1 -b param2:
no such file or directory\"\n".
を実行しようとしているのです。
stat
を実行する前に、それが存在するかどうかを知ることができます。
エントリーポイントへの引数は、dockerコマンドの最後にこのように記述します。
docker run --entrypoint <entrypoint.sh> <image:tag> <arg1> <arg2> <arg3>
コマンドはこうなります。
docker run --entrypoint /usr/local/tomcat/entrypoint.sh tomcat:jre8 -a param1 -b param2
公式ドキュメントのコードスニペットをご覧ください。
<ブロッククオート画像のENTRYPOINTは、COMMANDに似ています。 は以下を指定します。 どの実行ファイルを実行するか コンテナの起動時に
https://docs.docker.com/engine/reference/run/#/entrypoint-default-command-to-execute-at-runtime
関連
-
[解決済み] standard_init_linux.go:178: exec user process caused "exec format error".
-
[解決済み] bash スクリプトを実行しているドッカーエントリーポイントが "パーミッション拒否" になる
-
[解決済み] ファイル全体を見たり、ファイル全体を走査するのを待たずに、ログの現在の位置からドッカーログをテールする方法
-
[解決済み] dockerコンテナの停止と削除のための単一コマンド
-
[解決済み] Dockerfileを散らかさずに、複数の環境変数を読み込むには?
-
[解決済み] Docker: 停止したDockerコンテナを表示する
-
[解決済み】docker: 実行可能ファイルが$PATHに見つからない
-
[解決済み】dockerイメージのインストールディレクトリを変更する方法は?
-
[解決済み】Dockerエラーは、Dockerコンテナを削除することはできません、競合:リポジトリ参照を削除することはできません。
-
[解決済み】docker - コンテナの自動再起動を無効にする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "フロントエンドのdockerfile.v0との解決に失敗しました "というエラー。
-
[解決済み] Dockerはインストールされているのに、Docker Composeがインストールされていないのはなぜですか?
-
[解決済み] ファイル全体を見たり、ファイル全体を走査するのを待たずに、ログの現在の位置からドッカーログをテールする方法
-
[解決済み] kubernetesでPodを停止/一時停止する方法
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
-
[解決済み】Dockerコンテナからホストポートにアクセスする方法
-
[解決済み】Dockerがlxc-tools(ユーザースペースのLXCツール)に追加するものは何ですか?)
-
[解決済み】特定のコンテナのみdocker-composeを立ち上げる。
-
[解決済み】Dockerfileに引数を渡すには?
-
[解決済み】Kubernetes イメージを更新するデプロイメントの作り方