dockerは、bashのような問題に遭遇します。そのようなファイルやディレクトリがない、またはsh: 見つからない
docker は bash に遭遇しました。No such file or directory or sh: not found などの問題が発生しました。
ホストツールキットを使いやすくするために、docker volumeにはホストツールキットディレクトリがあり、コンテナ内のマウントディレクトリからツールキットを使用する際に表示されます
bash: xxx: No such file or directory
sh: xxx: not found
存在しないネイティブファイル、パーミッション、SELinuxなどの低レベルの問題の後、問題が発生した理由を探ります。
推測1:ホスト上のファイルディレクトリのinodeとDocker内のinodeが異なっている
使用方法
stat /xxx/xxx
ファイルツリーのinode情報を見るには
結論から言うと 一貫性、除外
推測2:アプリケーションにDockerコンテナで実行するためのライブラリが不足している
実行ファイルが実行に必要なライブラリを欠いている場合、No such file or directoryやnot foundなどの問題が返されます。
<ブロッククオート
https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/ldd.html
原則: ldd は実行ファイルではなく、シェルスクリプトです。ld-linux.so (elfダイナミックライブラリのローダ) は実行モジュールの依存関係を表示するもので、基本的にld-linux.soは実行モジュールより前に動作して制御するため、上記の環境変数が設定されると ld-linux.so が実行モジュールの依存関係を表示するよう選択されることになります。
を使用すると
ldd /xxx/xxx
プログラムの実行中の依存関係を見るために
該当する依存パッケージが確かに存在しないことが判明しました
解決方法 レスポンシブ依存ライブラリのインストール
派生した質問
この問題で遭遇する実行ファイルは jdk で、docker 自体にも jdk が付属しています。ホストの jdk は実行されないのに、docker であらかじめビルドされた jdk は実行されるのはなぜですか?
ホストは Oracle jdk、docker は open jdk がプリインストールされており、ホストのアーキテクチャは x86_64 であるが docker は amd64 を使用する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例