エラー詳細
DL3008 · hadolint/hadolint Wiki · GitHub
Docker イメージにパッケージをインストールするときに、バージョンが決め手になることは全然ないのですが、それだと hadolint が警告を出してきました。
無視したり、警告を抑制しても良いのですけれども、パッケージのバージョンをできるだけ細かく指定するべき、というのは、まあそうだよね、と思いましたので対応することにいたしました。
今回の例で取り上げるパッケージ
unzip
、および libpq-dev
にバージョンを指定していないので、これらを例に取り上げます。もともと、この警告に対応してバージョンを明記していたのですけれども、久しぶりに Docker イメージのビルドを行ったところ、そんなバージョンは無い、と言われてしまったので、今回の投稿に繋がった背景もあります。そもそも、このようなケースの場合、バージョン指定などしなくてもよさそうな気もします。。。
対応流れまとめ。
- バージョン指定をしないまま、最新のパッケージを Docker イメージにインストールする。
- コンテナを立ち上げ、インストールしたパッケージのバージョンを調べる。
- Dockerfile に調べたバージョンをコピペする。
このうち、最初の手順である、 Docker イメージへの問題となるバージョン未設定パッケージのインストールは完了しているところから始まります。