使用GCCB的Go1.9
这里简称TL;DR
-
- debian環境でGo 1.9でbuildしたい
gcr.io/cloud-builders/go:debianで1.9が使えるようになったのでこれを使う
在GCCB上的1.9版本兼容
我认为在GCCB上构建时,应该使用gcr.io/cloud-builders/go。
这是gcr.io/cloud-builders/go:alpine的别名,在1.9版本发布几乎同时更新为1.9版本。
$ docker run --rm --name go -it gcr.io/cloud-builders/go:alpine version
Documentation at https://github.com/GoogleCloudPlatform/cloud-builders/blob/master/go/README.md
Running: go version
go version go1.9 linux/amd64
由于要使用Stackdriver调试器,因此我希望在Debian环境中使用1.9版本的Golang,所以我自己将golang:1.9-stretch推送到了GCR上并使用了它。
去:Debian系统的添加
在那个时候,为了让cloud-builders的github存储库支持最新的go版本,合并了一个添加”go:debian”的PR。
我也曾认为这样就可以在Debian环境下变成1.9版本!
然而,这个标签并没有被推送到GCR上…
$ gcloud container images list-tags gcr.io/cloud-builders/go
DIGEST TAGS TIMESTAMP
6f712a3836a0 wheezy 2017-09-21T17:25:46
23ba11fb826c alpine,latest 2017-09-21T17:25:30
0cd2b6e8cdcd 2017-09-20T17:23:01
c0f7b7bfc202 2017-09-20T17:22:42
f597b5141e73 2017-09-19T17:22:54
241f728b7bb3 2017-09-19T17:22:37
509a6c7d020f 2017-09-18T20:53:32
94531456647a 2017-09-18T20:53:13
ed66988eacd0 2017-09-17T17:28:52
9f1b5a7c72ff 2017-09-17T17:28:35
自从上述的PR合并后,我等了又等,但是一直没有推送。然而今天早上去看,竟然已经推送了!
$ gcloud container images list-tags gcr.io/cloud-builders/go
DIGEST TAGS TIMESTAMP
527a43716750 debian 2017-09-29T06:19:23
3919ecc1666f wheezy 2017-09-29T06:18:55
a3a582ebc1c0 alpine,latest 2017-09-29T06:18:36
9658d11fc459 2017-09-29T02:47:57
196314f42c9e 2017-09-29T02:47:39
520401f83ed4 2017-09-28T17:34:36
9f16dd3584be 2017-09-28T17:34:14
86c1525fcd64 2017-09-27T17:27:13
b9adc60868f3 2017-09-27T17:27:00
1d112e1afe1c 2017-09-26T17:22:56
这样就赢了!
更新cloudbuild.yaml文件
只需按照以下步骤,立即就可以使用。
steps:
- name: gcr.io/cloud-builders/go:debian
args:
- test
- name: gcr.io/cloud-builders/go:debian
args:
- build
结束了。
为了使GOPATH等与工作区兼容,调整了图片。