Edited at

GCCBでGo1.9を使う

More than 1 year has passed since last update.


tl;dr


  • debian環境でGo 1.9でbuildしたい


  • gcr.io/cloud-builders/go:debianで1.9が使えるようになったのでこれを使う


GCCBでの1.9対応

GCCB上でbuildするときはgcr.io/cloud-builders/goを使うと思います。

これはgcr.io/cloud-builders/go:alpineのaliasで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 debuggerを使う関係上、Debian環境で1.9を使いたかったので自前でGCRにgolang:1.9-stretchをpush1して使っていました。


go:debianの追加

そんな折、cloud-buildersのgithub repositoryに最新のgoバージョンに対応させるため、go:debianを追加するPRがmergeされました。

これを使えばDebian環境でも1.9になるはず!!と思っていた時期が私にもありました。

しかしながら、このtagがGCRにpushされていない…

$ 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がmergeされてから待てど暮せどなかなかpushされなかったのですが、今朝みてみるとpushされているではありませんかっ!!

$ 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更新

以下のようなstepを書けば早速つかえます。


cloudbuild.yaml

steps:

- name: gcr.io/cloud-builders/go:debian
args:
- test
- name: gcr.io/cloud-builders/go:debian
args:
- build

おしまい。





  1. GOPATHとかをworkspaceに対応させるためにごにょったimage