Windows版のPodmanを利用させて頂いています。
このような感じで、write too longというエラーが出て、ビルドできない場合があります。
そもそも、イメージのダウンロードでネットワークに負荷がかかりますし。
ビルドは時間がかかるため、度々同じイメージをビルドするのも非効率かと思います。
このあたりを工夫したいと思います。
ビルド・保存済みの判定処理付きビルドコマンド
イメージのビルドの例として、日本語環境のPostgreSQLイメージを作ってみます。
Windows版Podman.exeを使って。
日本語ロケールのPostgreSQLイメージをビルドして。
日本語版のP...
次の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リソースの節約と。
何よりも、貴重な時間の節約のために、お役立て下さいませ。