カテゴリー
Linux コンピューター

[hadolint] warning: Pin versions in apt get install. Instead of apt-get install use apt-get install = (DL3008) を正当な修正をして黙らせるまでの手順メモ

エラー詳細

DL3008 · hadolint/hadolint Wiki · GitHub

Docker イメージにパッケージをインストールするときに、バージョンが決め手になることは全然ないのですが、それだと hadolint が警告を出してきました。

無視したり、警告を抑制しても良いのですけれども、パッケージのバージョンをできるだけ細かく指定するべき、というのは、まあそうだよね、と思いましたので対応することにいたしました。

今回の例で取り上げるパッケージ

unzip 、および libpq-dev にバージョンを指定していないので、これらを例に取り上げます。もともと、この警告に対応してバージョンを明記していたのですけれども、久しぶりに Docker イメージのビルドを行ったところ、そんなバージョンは無い、と言われてしまったので、今回の投稿に繋がった背景もあります。そもそも、このようなケースの場合、バージョン指定などしなくてもよさそうな気もします。。。

対応流れまとめ。

  1. バージョン指定をしないまま、最新のパッケージを Docker イメージにインストールする。
  2. コンテナを立ち上げ、インストールしたパッケージのバージョンを調べる。
  3. Dockerfile に調べたバージョンをコピペする。

このうち、最初の手順である、 Docker イメージへの問題となるバージョン未設定パッケージのインストールは完了しているところから始まります。