2022/06/13 追記
一旦この修正はrevertされたので、現在はhttpsで繋ぎにいかなくなっています
2022/06/03 23:46追記
skajiさんの指摘でPERL_CPANM_OPT
を指定した状態だと、cpanm
の一部の挙動に制限がかかることがPRに書かれました。
この状態だとmetacpanやcpanmetadbのresolverが使用できなくなるので、今後変更があるかもしれません。
追記ここまで
表題がすべてですが、 library/perl: Update for cpanm update and HTTPS install by default by zakame · Pull Request #12569 · docker-library/official-images · GitHub のPRがmergeされ次第、5.32以降のdocker-perlでのcpanmはhttps://www.cpan.org
に繋ぎに行くようになります。
これは先日docker-perlでインストールされるcpanmのバージョンを最新にしたところ、docker-perlのメンテナのzakameさんが以前のCPAN脆弱性対応のために乗り気で入れたものです。
具体的に何をしたかというと、環境変数としてPERL_CPANM_OPT
に"--from https://www.cpan.org"
を設定しています。
これはcpanm
がデフォルトで接続に行く先をhttps://www.cpan.org
にする設定です。
この変更によって表題のことが行われます。
影響のあるPerlバージョン
5.32以降の安定バージョンです。 正確に言うと5.32.1, 5.34.1, 5.36.0の3バージョンが影響を受けます。 docker-perlのtagの関係上、5.32と指定した場合は5.32.1と同じ意味になりますので、5.32以降のPerlをdocker-perlで使っている方は影響があります。
対して5.30以前のPerl Imageは影響を受けません。 これはdocker-perlの現在の開発方針が、「EOLを迎えていないPerlバージョンのみImageの積極的に更新を行う」方針であるためです。
(そのため現在でもDebian11(bullseye)ベースのイメージは5.30以前のPerlバージョンはなかったりします。)
以下にこの変更による影響をまとめます。
DockerImage自体
ca-certificates
とcurl
がslimのImageでもインストールされたままになります。
cpanm
cpanm
のバージョンが最新になります。
特に問題なくcpanm
でモジュールインストールが可能です。
テストではMojoliciousをインストールしています。
ciの結果を見る限りしっかりhttps
でインストールされてます。
carton
Carton
に関しては環境変数が別となるのでhttpのままになります。
いやでもhttpsで接続したいんだが...!? という方はCartonの後継プロジェクトとなっているCarmel
の方をお使いください。
CarmelはCartonと同じ機能を持ちながら、デフォルトでhttps://cpan.metacpan.org/
に繋ぎに行くので安心です。
cpm
特に影響はないと思われます。
まとめ
- 5.32以降のdocker-perlでのcpanmは
https://www.cpan.org
に繋ぎに行くようになります - 同時に
cpanm
も最新になります - docker-perlはEOLを迎えてないPerlのバージョンのみ面倒を見ているので、docker-perlを使う方はバージョンに注意しましょう
現場からは以上です