問題タブ [podman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
375 参照

docker - Podman ビルドが特定の RUN ステップのコンテナーのネットワーク モードを設定する

RUNデータベースのインポート操作のためにmariadbサーバーを起動するいくつかのコマンドを含むDockerfileがあります。

問題は、コマンドpodman buildのネットワークモードをデフォルトでに設定することです。これは、ホストのネットワークインターフェイスを使用します-podmanのドキュメントから理解したように-したがって、mariadbステップが来ると、別のmariadbインスタンスが実行されているため、サーバーを起動できません同じポートを持つホスト-一時的に停止できません。RUNhost

私にとってうまくいった回避策は--network container、コマンドにフラグを追加することですbuildが、これを行うと、依存関係をインストールしている他のステップのインターネットアクセスが妨げyumられました.ビルドステップ用に作成されたネットワーク名前空間には、外部-インターネット-アクセスがありません.

ビルド中のイメージにシステムの依存関係をインストールするには、ホスト ネットワークを使用する必要があり、ネットワーク インターフェイスを使用するサービスを開始するには、インターネットにアクセスできないコンテナー ネットワークを使用する必要があります。buildただし、runコンテナをユーザー定義のブリッジ ネットワークで接続している間は、インターネットにアクセスできます。

現時点での私の回避策は、ホスト ネットワークで 1 回ビルドし、もう 1 回はコンテナー ネットワークでビルドすることです。2 回目buildは、外部依存関係が既にインストールされているキャッシュ イメージを使用します。DockerfileまたはContainerfileホストネットワークを使用し、ブリッジネットワークを使用します。

この問題の詳細についてお詫び申し上げます。この特定のケースを検索しようとしましたが、手順の各グループを手動で構築する以外に明確な答えが見つかりませんでした。

PS:コンテナーの実行中に機能するユーザー定義のネットワークにフラグを設定しようとしましnetworkたが、サポートされていないか、build.