説明
自動確認が設定されていない場合、Dockerfile の apt-get install はユーザー入力を求めることがあります。CI/CD などの自動ビルドでは入力できず、処理が止まったり失敗したりする場合があります。
-y、--yes、--assume-yes は apt-get の確認に自動で応答します。パッケージ設定スクリプトのすべての質問に対応したり、インストール成功を保証したりするものではありません。
想定される影響
- 自動ビルドが確認入力で停止・失敗する場合があります。
- 緊急デプロイや復旧に必要なイメージ再ビルドが遅れる場合があります。
対処方法
- apt-get install に -y、--yes、--assume-yes のいずれかを使い、自動ビルドが完了することを確認してください。
- 追加質問があるパッケージには必要な値を事前設定し、非対話設定はそのインストールコマンドだけに適用してください。署名検証を無効にして確認エラーを回避しないでください。
例
インストール確認オプションだけを比較します。インデックス更新とインストールは同じ RUN 内で行います。キャッシュ削除やバージョン管理は別途確認してください。
変更前
dockerfile
FROM ubuntu:24.04
RUN apt-get update && apt-get install curl
変更後
dockerfile
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y curl
補足:
- 変更前: apt-get のインストール確認が必要になる場合があります。
- 変更後: -y で apt-get の確認に応答します。追加の設定質問や依存関係エラーは別途対処が必要です。