Dockerfileで`apt-get upgrade`をつかってはいけない。注:日本語版だと誤訳されています。

April 02, 2019

今までBest practices for writing dockerfilesを読んだつもりで全然読んでませんでしたすみません。

Best Practice

Best practices for writing dockerfilesの該当箇所

  • RUN apt-get upgradeを使わない。
  • 必須パッケージが古いことがわかっている場合は、ベースイメージのメンテナーに連絡した上で、RUN apt-get update && apt-get install -f hogeを利用する。
  • 日本語翻訳では、“Avoid RUN apt-get upgrade“が”Run apt-get update“を利用しない”と誤訳されている。

経緯

Dockerfile用のLinterを作っている友達がいて、その中にDo not use apt-get upgrade or dist-upgrade.というのがあり疑問に思って、調べてみたらこの情報を見つけました。

Best practices for writing dockerfiles読んだつもりで全然読めてませんでした。すみません。

理由

  • 「必須」パッケージを”unprivileged container”(訳が難しいが親イメージに対する「最下流の」コンテナ、的な意味)でアップデートするべきではないから。

    • ちゃんとベースイメージでアップデートするように求められています。

まとめ

  • RUN sudo apt-get upgradeを使う状況を作らない。
  • Bestpractices for writing dockerfilesをちゃんと読もう。

Written by aimof
Goプログラマ。PythonやJSなどもちょくちょく触る。最近はGatsbyのカスタマイズが楽しい。 Twitter