Windows版Podman.exeでイメージのビルドを効率化するには

Windows版のPodmanを利用させて頂いています。

イメージをビルドすると、なかなか負荷が大きいらしく。

このような感じで、write too longというエラーが出て、ビルドできない場合があります。

そもそも、イメージのダウンロードでネットワークに負荷がかかりますし。

ビルドは時間がかかるため、度々同じイメージをビルドするのも非効率かと思います。

このあたりを工夫したいと思います。


ビルド・保存済みの判定処理付きビルドコマンド

イメージのビルドの例として、日本語環境のPostgreSQLイメージを作ってみます。

Podman.exeで日本語ロケールのPostgreSQLポッドを作成するには 2022年11月版
Windows版Podman.exeを使って。 日本語ロケールのPostgreSQLイメージをビルドして。 日本語版のP...

次の3つの条件を加えてみました。

  1. イメージがビルド済みなら何もしない
  2. すでにビルドされたイメージファイルがあればロード
  3. 何も無ければビルドしてから、イメージファイルを保存

ビルドのコマンドは下記になります。

Windowsのバッチファイルとして保存して下さい。また文字コードがANSIかどうかご確認下さい。

rem ビルド済みイメージがあれば終了
set IMGTAG=postgres_ja
podman image exists %IMGTAG%
IF not ERRORLEVEL 1 (
goto :EOF
)

rem イメージファイルがあれば読み込み
set IMGFILE=image_%IMGTAG%.tar
IF EXIST  %IMGFILE% (
podman image load < %IMGFILE%
goto :EOF
)

rem 無ければイメージをビルドして保存
set CNTFILE=Containerfile_pgsql.txt
podman image build -f %CNTFILE% -t %IMGTAG% --log-level=debug
rem ビルド後イメージファイル保存
podman image save -o %IMGFILE% %IMGTAG%

バッチファイルではなく、PowerShellやbashに作り変える場合も、基本的な流れは同じで大丈夫かと思います。


というこの記事を書きながら、イメージをビルドしているのですが、進みません。

プログラム内部の事ですので、今のところ処理が終わるまで待つしかありません。

ネットワークやストレージ、CPUリソースの節約と。

何よりも、貴重な時間の節約のために、お役立て下さいませ。

スポンサーリンク

フォローする

スポンサーリンク