GoogleAppEngineでPerlを動かす

GoogleAppEngineは5年前に使ったきり Dockerはよく知らない Perlもまだまだ しかし、ローカル以外の何処かでとりあえず動かしておきたい

こちらを参考にさせていただきました qiita.com

gcloudのインストール

GoogleCloudSDKをインストールします

Google Cloud SDK Documentation  |  Cloud SDK  |  Google Cloud Platform

https://cloud.google.com/sdk/docs/#install_the_latest_cloud_tools_version_cloudsdk_current_version

$ tar xvzf google-cloud-sdk-137.0.1-darwin-x86_64.tar.gz 
$ ./google-cloud-sdk/install.sh
$ source .bash_profile

#認証
$gcloud auth login

GoogleCloudConsole

プロジェクトを作っておきましょう console.cloud.google.com

gcloudにプロジェクトを設定します(やらなくても大丈夫かと思います)

$ gcloud config set project プロジェクト名

デプロイする

サンプルを利用します ここまでは一緒

$ git clone git@github.com:aql/perl-appengine-sample.git
$ cd perl-appengine-sample

SDKの変更があったのか、gcloud preview app --project "foo-bar" deploy .は動きません

app.yamlの設定を2箇所修正します

diff --git a/app.yaml b/app.yaml
index 5ca2107..592d919 100644
--- a/app.yaml
+++ b/app.yaml
@@ -1,6 +1,5 @@
-version: 1
 runtime: custom
-vm: true
+env: flex
 api_version: 1

修正後、以下のコマンドでデプロイします

$ gcloud app --project "プロジェクト名" deploy app.yaml

デプロイが完了したら以下のコマンド、またはブラウザから直接開いて確認ができます

$ gcloud app browse

手軽にDockerでperlの環境をGAEに上げることができました perl以外にもdockerコンテナを設定すれば任意の言語等が動きます ちなみにGKE(GoogleComputeEngine)でもDockerを利用できますが、GAEのほうがかんたんにセットアップをすることができました