このイメージは、従来の CircleCI 製 Go イメージ circleci/golang
の後継となるものです。
cimg/go
は、継続的インテグレーションでのビルドを想定して CircleCI が作成した Docker イメージです。 各タグには特定のバージョンの Go 一式とツールチェーンが含まれているほか、テスト ラッパーの gotestsum
、および CircleCI 環境でビルドを正常に完了させるために必要なバイナリとツールが含まれています。
このイメージは、CircleCI Docker
Executor と組み合わせて使用します。 以下に例を示します。
1
2
3
4
5
6
7
jobs:
build:
docker:
- image: cimg/go:1.23.3
steps:
- checkout
- run: go version
上記の例では、この CircleCI 製 Go Docker イメージをプライマリ コンテナとして使用しています。 具体的に言うと、1.23.3
というタグで、バージョン v1.23.3 の Go を指定しています。 こうすることで、このジョブのステップ内で Go を使用できます。
このイメージには、Go プログラミング言語と全ツールチェーンが含まれています。 具体的には、Go モジュールのサポートや公式 Go プロキシ サーバーなどです。
このイメージのタグ付けのスキームは以下のとおりです。
cimg/go:<go-version>[-variant]
<go-version>
- 使用する Go のバージョンを指定します。 完全なセマンティック バージョニング形式でポイント リリースを指定するか (1.12.7
など)、またはマイナー リリースを指定できます (1.12
など)。 マイナー リリースを指定した場合は、将来的に Go チームからパッチ アップデートがリリースされた時点で、そのパッチ アップデートを参照することになります。 たとえば、タグ 1.13
は、執筆時点では Go v1.13 を参照しますが、次のリリースが発表された後は v1.13.1 を参照することになります。
[-variant]
- 利用可能な場合は、バリアント タグもオプションとして使用できます。 たとえば、Node.js バリアントが利用可能であれば、cimg/go:1.13-node
のように指定できます。
通常、バリアント イメージのベース ソフトウェアは元イメージと同一ですが、いくつかの変更が加えられています。
Node.js バリアントのベースは元の Go イメージと同一ですが、こちらでは Node.js もインストールされます。 このバリアントは、-node
を既存の cimg/go
タグの末尾に追加することで使用できます。
1
2
3
4
5
6
7
8
jobs:
build:
docker:
- image: cimg/go:1.23.3-node
steps:
- checkout
- run: go version
- run: node --version
ブラウザー バリアントのベースは元の Go イメージと同一ですが、こちらでは apt により Node.js、Java、Selenium、ブラウザーの依存関係が事前インストールされます。 使用するには、-browser
を既存の cimg/go
タグの末尾に追加します。 このバリアントは、CircleCI Browser-Tools Orb と組み合わせて使用する想定で設計されています。 この Orb を使用すると、任意のバージョンの Google Chrome と Firefox のいずれかまたは両方をビルドでインストールできます。 このイメージには、各ブラウザーおよびそのドライバーを使用するうえで必要なすべてのサポート対象ツールが含まれています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
orbs:
browser-tools: circleci/browser-tools@1.1
jobs:
build:
docker:
- image: cimg/go:1.13-browsers
steps:
- browser-tools/install-browser-tools
- checkout
- run: |
go version
node --version
java --version
google-chrome --version