Dockerfileで思考停止的にENV DEBIAN_FRONTEND noninteractiveを書いてはいかん
タイトルどおり、私は今までUbuntu系のイメージを作成するときにENV DEBIAN_FRONTEND noninteractive
をおまじない的に書いてしまっていたが良くない。
公式ドキュメントでも非推奨と書いてある。
そもそもこのおまじないを書くのは、apt installするときにダイアログボックスを開こうとするパッケージがあって
そのインストール時に失敗するから。
Dockerfile内で ENV DEBIAN_FRONTEND noninteractive
としてしまうと
そのDocker imageを使っているときに、何も知らないユーザがコンテナ内で追加でapt installしようとする(その良し悪しは置いといて)と
環境変数が継承されたままなので、悪影響を及ぼす可能性がある。
そのため、公式ではDEBIAN_FRONTEND
環境変数を最終的にはデフォルト値(多分newt
かな)に戻せとある。
私はデフォルト値がnewt
なのか確信がないので、Dockerfile内ではapt installするときに
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
git \
...
のようにapt実行時にだけ適用することにし、再び思考停止した。