GCCBでGo1.9を使う


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