ゴール:
Cloud Build 構成を使用して、アプリ エンジンにデプロイできるアーティファクトにアプリをビルドします。
機能しない解決策:
これはcloudbuild.yaml
次のとおりです。
steps:
- name: 'gcr.io/cloud-builders/go'
args: ['get']
env: ['PROJECT_ROOT=project-name']
- name: 'gcr.io/cloud-builders/go'
args: ['build', '.']
env: ['PROJECT_ROOT=project-name']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy']
timeout: '1600s'
artifacts:
objects:
location: 'gs://project-artifacts/'
paths: ['project-name']
App Engine 構成app.yaml
:
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
最後にmain.go
: https://github.com/GoogleCloudPlatform/golang-samples/blob/master/appengine/helloworld/hello.go
デプロイ手順が非常に単純になり、前の 2 つの手順さえ必要ないことは理解しています。ヘルプを参照したところ、ステップが外部アーティファクトを受け入れることができるcloud app
かどうかを確認できませんでした。deploy
デプロイ手順は次のエラーで失敗します。
failed analyzing /workspace: cannot find package "google.golang.org/appengine" in any of:
($GOROOT not set)
/builder/home/go/src/google.golang.org/appengine (from $GOPATH)
GOPATH: /builder/home/go
私は2つの解決策を探しています:
- 理想的には、アーティファクトを
project-artifacts
バケットにビルドし、デプロイ ステップを使用してそれらをデプロイできること gcloud components install app-engine-go
それが不可能な場合は、依存関係の欠落で失敗しないように、デプロイ コンテナー内で実行する方法を知る必要があります。