zypperの非対話オプションの不足

zypperの確認入力に対処し、自動ビルドの結果を確認してください。

説明

zypper installは、確認が必要な場合に入力を待つことがあります。Dockerの自動ビルドでは、入力待ちやビルド失敗につながる可能性があります。

コンテナーイメージは、人が操作しなくてもビルドできる必要があります。確認入力には非対話オプションを使ってください。ただし、パッケージやリポジトリのエラーを解消したり、インストールの成功を保証したりするものではありません。

想定される影響

  • イメージビルドが途中で停止したり、失敗したりする場合があります。
  • CI/CDパイプラインのデプロイが遅れる可能性があります。
  • 環境によって結果が変わり、ビルドの再現性が低下するおそれがあります。

対処方法

  • zypper install -y ...のように非対話オプションを指定してください。
  • パッケージキャッシュの削除もビルド手順に含めてください。
  • 自動ビルドにユーザー入力を要求するコマンドがないか確認してください。

例

zypperとリポジトリが構成されたSUSE系イメージで、rootとして実行するビルド手順の抜粋です。curlパッケージが提供されていることと、インストール結果を確認してください。

変更前

dockerfile
RUN zypper install curl && zypper clean

変更後

dockerfile
RUN zypper install -y curl && zypper clean

説明:

  • 変更前: 確認入力が必要になると、ビルドが中断する場合があります。
  • 変更後: -yで非対話インストールを指定します。失敗時の終了コードや、ライセンスなどの追加要件も確認してください。

参考資料