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実行時にだけ適用することにし、再び思考停止した。

mukiudo
mukiudo
Software Engineer