これまでSpring Cloud GCP で Secret Manager に登録した秘密情報をアプリケーションの設定値として設定できるようにしてきて、これをデプロイするところまで行った
あとはこれをCloud BuildでAppEngine Deployするようにしたい
ローカルで検証する
Cloud Buildでデプロイするために、cloudbuild.yamlファイルを作成して管理画面から実行してみたが失敗が続いたので、まずはローカルで検証することにする
ローカルでのビルドとデバッグ | Cloud Build のドキュメント | Google Cloud
cloudbuild.yamlファイルを作成したら、以下のコマンドを打つとローカルで実行できる
$ cloud-build-local --config=cloudbuild.yaml --dryrun=false .
cloudbuild.yamlは以下とした
--- steps: - name: gcr.io/cloud-builders/mvn:3.5.0-jdk-8 args: - clean - package id: 'build' - name: gcr.io/cloud-builders/gcloud args: - app - deploy - ./target/my-app-0.0.1-SNAPSHOT.jar id: 'deploy' waitFor: ['build']
ステップは2つで、mvn package
でjarを作ったあとにgcloud app deploy
でデプロイするようにしている
もともとローカルからデプロイするときはmvn appengine:deploy
を使っていたので、mvnイメージ(mvn:3.5.0-jdk-8)でそれを行おうとしたらgcloud
がインストールされていないというエラーが発生したので2ステップに分けた
さらにcloudbuild.yamlのapp deploy [jarのパス]
にしているのは、指定しない場合以下のエラーが発生したため
Exception in thread "main" com.google.cloud.runtimes.builder.exception.ArtifactNotFoundException: No deployable artifacts were found. Unable to proceed
とりあえずこれでローカルのデプロイはうまくいった