このイメージは、従来の CircleCI 製 PostgreSQL イメージ circleci/postgres
の後継となるものです。
cimg/postgres
は、継続的インテグレーションでのビルドを想定して CircleCI が作成した Docker イメージです。
このイメージは、セカンダリ イメージとして、CircleCI Docker
Executor と組み合わせて使用します。 以下に例を示します。
1
2
3
4
5
6
7
jobs:
build:
docker:
- image: cimg/go:1.17
- image: cimg/postgres:17.0.0
steps:
- checkout
上記の例では、CircleCI 製 Go Docker イメージをプライマリ コンテナとして、PostgreSQL イメージをセカンダリ コンテナとして使用しています。 具体的に言うと、17.0.0
というタグで、最新バージョンの PostgreSQL を指定しています。 こうすることで、このジョブのステップ内でプライマリ イメージから PostgreSQL インスタンスに接続できます。
このイメージには、PostgreSQL データベースとツールチェーン一式が含まれています。
このイメージのタグ付けスキームは以下のとおりです。
cimg/postgres:<pg-version>[-variant]
<pg-version>
- 使用する PostgreSQL のバージョンを指定します。 [-variant]
- バリアント タグもオプションとして追加できます。 使用可能なバリアントは、こちらで確認できます。
通常、バリアント イメージのベース ソフトウェアは元イメージと同一ですが、いくつかの変更が加えられています。
PostGIS バリアントのベースは元の PostgreSQL イメージと同一ですが、こちらでは PostGIS (といくつかの依存ライブラリ) が事前インストールされます。 PostGIS バリアントを使用するには、-postgis
を既存の cimg/postgres
タグの末尾に追加します。
1
2
3
4
5
6
7
8
jobs:
build:
docker:
- image: cimg/go:1.17
- image: cimg/postgres:17.0.0-postgis
steps:
- checkout
- run: echo "Do things"
このイメージの従来バージョンである circleci/postgres
には、RAM バリアントがあり、データベースをインメモリに置くことができましたが、 この後継バージョンにはありません。 現在、RAM バリアントの要否を判断するため、このバリアントによるパフォーマンス向上効果についての調査を進めています。 従来の PostgreSQL イメージをお使いで、RAM バリアントとそれ以外のバリアントのビルド時間を比較したデータをお持ちの方は、ぜひ GitHub Issue を作成してご報告ください。