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
.