7

Dockerfile 内で、実行時にインストールされる Perl モジュールを次のように設定しています。

RUN ["cpanm", "Carp", "Carp::Heavy", "Class::Data::Inheritable"]

ただし、1 つのモジュールについては、最新のモジュールではなく、特定のバージョンのモジュールが必要です。上記の行でそのバージョンを指定するにはどうすればよいですか?

私は何時間もオンラインで検索してきましたが、まだ有用なものは何も見つかりませんでした.

4

3 に答える 3

6

将来この同じ答えを探している人のために、別のオプションが次のドキュメントにありますcpanm

cpanm Plack@0.9990

モジュールのリストが長い場合は、Dockerfile にすべてをリストするのではなく、にフィードするcpanfileことを検討してください。cpanm

モジュールの特定のバージョン番号を a で指定する最も簡単な方法cpanfileは次のとおりです。

requires 'Text::ParseWords', '==3.1';

モジュールの最新バージョンを要求するための構文は次のとおりです。

requires 'Text::ParseWords';

最小バージョンのリクエスト: (「==」がないことに注意してください)

requires 'Text::ParseWords', '3.1';

他の方法で特定のバージョンを要求するための構文については、こちらで十分に説明されています。

cpanmと aの使用に関する別の素晴らしい記事は、cpanm と cpanfile による cpan モジュールのインストールにありcpanfileます。

于 2016-07-27T21:42:02.897 に答える
6

モジュール名を指定する代わりに、URL を指定します。たとえば、代わりにClass::Data::Inheritableを使用しますhttps://cpan.metacpan.org/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.06.tar.gz

metacpan のモジュール ページに移動し、必要なバージョンを選択して、ダウンロード リンクをコピーすると、該当する URL を見つけることができます。

PS:を使用してのみダウンロードするPERL_CPANM_OPT=--from https://cpan.metacpan.org/ように環境に設定することもできます。cpanmHTTPS

于 2016-07-26T19:56:15.487 に答える
4

モジュールの特定のバージョンを CPAN にインストールさせるには、作成者を含む完全なモジュール配布ファイル名を提供する必要があります。たとえば、モジュールSet::Objectversionをインストールする1.28には、コマンド ラインで次のように入力します。

cpan SAMV/Set-Object-1.28.tar.gz

同じことが Docker にも当てはまります。追加するだけです

RUN cpan SAMV/Set-Object-1.28.tar.gz
于 2016-07-26T19:55:46.670 に答える