目标:
使用 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.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
我确实知道部署步骤现在非常幼稚,甚至不需要前两个步骤。咨询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
在部署容器中运行,这样它就不会因缺少依赖项而失败。