問題タブ [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.
docker - Podman ビルドが特定の RUN ステップのコンテナーのネットワーク モードを設定する
RUN
データベースのインポート操作のためにmariadbサーバーを起動するいくつかのコマンドを含むDockerfileがあります。
問題は、コマンドpodman build
のネットワークモードをデフォルトでに設定することです。これは、ホストのネットワークインターフェイスを使用します-podmanのドキュメントから理解したように-したがって、mariadbステップが来ると、別のmariadbインスタンスが実行されているため、サーバーを起動できません同じポートを持つホスト-一時的に停止できません。RUN
host
私にとってうまくいった回避策は--network container
、コマンドにフラグを追加することですbuild
が、これを行うと、依存関係をインストールしている他のステップのインターネットアクセスが妨げyum
られました.ビルドステップ用に作成されたネットワーク名前空間には、外部-インターネット-アクセスがありません.
ビルド中のイメージにシステムの依存関係をインストールするには、ホスト ネットワークを使用する必要があり、ネットワーク インターフェイスを使用するサービスを開始するには、インターネットにアクセスできないコンテナー ネットワークを使用する必要があります。build
ただし、run
コンテナをユーザー定義のブリッジ ネットワークで接続している間は、インターネットにアクセスできます。
現時点での私の回避策は、ホスト ネットワークで 1 回ビルドし、もう 1 回はコンテナー ネットワークでビルドすることです。2 回目build
は、外部依存関係が既にインストールされているキャッシュ イメージを使用します。Dockerfile
またはContainerfile
ホストネットワークを使用し、ブリッジネットワークを使用します。
この問題の詳細についてお詫び申し上げます。この特定のケースを検索しようとしましたが、手順の各グループを手動で構築する以外に明確な答えが見つかりませんでした。
PS:コンテナーの実行中に機能するユーザー定義のネットワークにフラグを設定しようとしましnetwork
たが、サポートされていないか、build
.