前回の
PerlアプリケーションをECS化するポイント
(2)
Perlのベースイメージの選び方
便利なことに、
今回は特にバージョンにこだわる理由がないので、perl:5.
をベースイメージとして採用しました。
Docker Hubに登録されていないバージョンを使いたい場合
Docker Hubに登録されていないバージョンを使いたい場合は、xbuild
などを使ってPerlを手動ビルドしてください。
ソースコードをイメージに含める? 含めない?
Dockerイメージを作るうえで考えなければならないのが、
とはいえ、bind
マウントを使ってローカル開発環境のソースコードをマウントする手法が用いられます。特にスクリプト言語ではビルドを行う必要がないため、
ECSにデプロイする場合はソースコードを含めないわけにはいきませんから、
そのため、
今回はECSにPerlアプリケーションをデプロイして動作させることが目的ですから、
なお、
CPANモジュールをイメージに含める? 含めない?
たいていのPerlアプリケーションは複数のCPANモジュールに依存しているので、
どのCPANモジュールを使うかは、
今回は、Dockerfile
中でcarton install --deploy ment
を実行し、cpanfile.
をもとにモジュールをインストールすることで、cpanfile.
は、cpanfile
別解:ENTRYPOINTでCPANモジュールをインストールするアプローチ
イメージのビルド時にCPANモジュールをインストールするのではなく、ENTRYPOINT
にシェルスクリプトを設定し、cpanfile.
を書き換えてもイメージのビルドをやりなおす必要がなくなるため、
Server::Starterは不要
PerlでWebアプリケーションを書く場合は、Server::Starter
をよく用います。Server::Starter
の仕事は、Server::Starter
を利用する必要はありません。
<続きの
本誌最新号をチェック!
WEB+DB PRESS Vol.130
2022年8月24日発売
B5判/168ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-13000-8
- 特集1
イミュータブルデータモデルで始める
実践データモデリング
業務の複雑さをシンプルに表現! - 特集2
いまはじめるFlutter
iOS/Android両対応アプリを開発してみよう - 特集3
作って学ぶWeb3
ブロックチェーン、スマートコントラクト、NFT