Dockerfile で apt-get upgrade しよう

2023/11/2 更新

今は再び復活してるそうです。詳細は後で確認してみます。


Dockerfile apt-get upgrade などでググると、apt-get upgrade してはいけないという記事がいくつか出てきます。

見てみると

公式のbest practicesに載っていたようです。
以下は、少し古い日本語訳。
Dockerfile のベストプラクティス — Docker-docs-ja 1.9.0b ドキュメント

RUN apt-get upgrade や dist-upgrade の実行は避けてください。
ベース・イメージに含まれる重要パッケージは、権限が与えられていないコンテナ内ではほとんど更新できないからです。
ベース・イメージ内のパッケージが古くなっていたら、開発者に連絡をとってください。
foo というパッケージを更新する必要があれば、 apt-get install -y foo を利用してください。
これによってパッケージは自動的に更新されます。

ということが書かれています。
へー、そうなのかと思い、最新版を見てみると、記述がなくなっていました。
Best practices for writing Dockerfiles | Docker Documentation.

どういうことか

こちらのissueで対応が入っていました。
Stop telling people not to install security updates by itamarst · Pull Request #12571 · docker/docker.github.io · GitHub.

リンクが載せられています。
The worst so-called “best practice” for Docker
 
root権限が無い場合の話は、rootに変更して実施することが可能だし、 ベース・イメージはすぐに対応してくれないし、 手動でバージョン固定にしちゃうことが実害になることはないというようなことが書かれています。

結論

apt-get upgrade はやりましょう。