【Kotlin + GCP】Cloud RunにKotlin + Spring Bootアプリをデプロイしてみる
はじめに
こんにちは、がんがんです。
以前、Kotlin + Spring Boot + Maven on Dockerの実験に関する備忘録を書いたかと思います。
gangannikki.hatenadiary.jp
上記記事の最後でも記述している通り、実際にGCPで実行するまでをゴールとしています。
今回の記事ではGoogle Cloud Runにデプロイするまでの備忘録を書いていこうと思います。
目次
環境
今回はGoogle Cloud Console上で行っています。
STEP0:Cloud ConsoleにてKotlinアプリをビルドする
今回はCloud Consoleですべての実験を進めていきます。今回の実験では、前回作成したKotlin + Spring Bootアプリを使用します。
$ git clone Kotlin-Springアプリ $ docker build --no-cache -t kotlin-spring-demo .
ビルド時にmavenの方でPermission Errorが起きました。こちらは下記で対応しました。
git update-index --add --chmod=+x demo/mvnw
STEP1:Container Registryにアップロードする
ビルドが完了したイメージをCloud ConsoleよりGCRへpushしていきます。
ローカルからpushする場合はContainer Registryに関する認証方法を確認してください。
# プロジェクトIDを確認 $ gcloud config get-value project $ docker tag kotlin-spring-demo gcr.io/<PROJECT_ID>/kotlin-spring-demo $ docker push gcr.io/<PROJECT_ID>/kotlin-spring-demo
Container Registryにアクセスするとアップロード出来ていることが確認できるかと思います。
STEP2:Cloud Runへデプロイする
GCRへのpushが確認出来たら、Cloud Runへとデプロイしていきます。デプロイに関しては公式ドキュメントが参考になります。
$ gcloud run deploy --image gcr.io/<PROJECT_ID>/kotlin-spring-demo --platform managed --region us-central1
サービス名はそのままEnterキー、[未認証の呼び出しを許可]はそのままyをそれぞれ設定しています(すべてオプション設定した方が正直楽です)。
実行結果
実際にCloud Runのデプロイ先にアクセスしてみます。
/helloに接続しないと怒られてしまいますね。こちらはコントローラがないことによるSpring Bootによるエラーでした。
/helloを入力するときちんと表示されます。