Buildahの自動化でaptを使用

自動化にはapt-getとapt-cacheの安定したインターフェースを使ってください。

説明

aptは対話的な利用を想定しており、バージョンによって動作や出力が変わる場合があります。Buildahのスクリプトには、自動化向けのインターフェースが適しています。

想定される影響

コマンドの動作や出力に依存するビルドは、パッケージツールの更新後に失敗する場合があります。

対処方法

インストールにはapt-get、パッケージ情報の照会にはapt-cacheを使ってください。この変更だけでパッケージのバージョンやビルド結果が固定されるわけではありません。

例

パッケージ一覧を準備したUbuntuコンテナーで、インストールコマンドだけを変更する抜粋です。イメージとパッケージのバージョン、残りのビルド手順は別途管理してください。

変更前

bash
c=$(buildah from ubuntu)
buildah run "${c}" apt install python3-setuptools -y

変更後

bash
c=$(buildah from ubuntu)
buildah run "${c}" apt-get install python3-setuptools -y

参考資料