このイメージは、従来の CircleCI 製 Elixir イメージ circleci/elixir
の後継となるものです。
cimg/elixir
は、継続的インテグレーションでのビルドを想定して CircleCI が作成した Docker イメージです。 各タグには特定のバージョンの Elixir 一式が含まれており、mix および hex と組み合わせて使用できます。
このイメージは、CircleCI Docker
Executor と組み合わせて使用します。 以下に例を示します。
1
2
3
4
5
6
7
8
9
jobs:
build:
docker:
- image: cimg/elixir:1.17.2-erlang-26.2.1-node
steps:
- checkout
- run: mix --version
- run: mix deps.get
- run: mix test
上記の例では、この CircleCI 製 Elixir Docker イメージをプライマリ コンテナとして使用しています。 具体的に言うと、1.17.2-erlang-26.2.1-node
というタグで、バージョン v1.17.2-erlang-26.2.1-node の Elixir を指定しています。 こうすることで、このジョブのステップ内で mix
を使用できます。
このイメージには、Elixir に加えて、Erlang のサポート対象バージョンが含まれています。
このイメージのタグ付けスキームは以下のとおりです。
標準スキームでは Erlang のデフォルトバージョンを参照します。現在は 25.0
です。
cimg/elixir:<elixir-version>[-variant]
Erlang タグ付けスキーム (オプションバージョン):
cimg/elixir:<elixir-version>-<erlang-version>[-variant]
<elixir-version>
- 使用する Elixir のバージョンを指定します。 完全なセマンティックバージョニング形式でのポイントリリース (1.10.2
など)、またはマイナーリリース (1.10
など) を指定できます。 マイナーリリースタグを使用する場合は、Elixir プロジェクトからパッチアップデートがリリースされると、自動的にその時点のパッチアップデートを参照します。 たとえば、タグ 1.10
は、現時点では Elixir 1.10.2 を参照しますが、次のリリース後は 1.10.3 を参照します。
<erlang-version>
- 使用する Erlang のバージョンを指定します。 これは Erlang の命名規則に従って major.minor バージョンになります( 25.0
と同様)。
[-variant]
-バリアントタグもオプションで使用できます。 たとえば、cimg/elixir:1.10.1-node
と指定すると、Node.js バリアントを使うことができます。
通常、バリアント イメージのベース ソフトウェアは元イメージと同一ですが、いくつかの変更が加えられています。
Node.js バリアントのベースは元の Elixir イメージと同一ですが、こちらでは Node.js もインストールされます。 このバリアントは、-node
を既存の cimg/elixir
タグの末尾に追加することで使用できます。
1
2
3
4
5
6
7
8
jobs:
build:
docker:
- image: cimg/elixir:1.17.2-erlang-26.2.1-node-node
steps:
- checkout
- run: mix --version
- run: node --version
ブラウザー バリアントのベースは元の Elixir イメージと同一ですが、こちらでは apt により Node.js、Selenium、ブラウザーの依存関係が事前インストールされます。 使用するには、-browser
を既存の cimg/elixir
タグの末尾に追加します。 このバリアントは、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/elixir:1.11-browsers
steps:
- browser-tools/install-browser-tools
- checkout
- run: |
mix --version
node --version
java --version
google-chrome --version