Skip to content

Commit 99fda07

Browse files
authored
Ja translation
1 parent 12fa3af commit 99fda07

File tree

7 files changed

+1550
-0
lines changed

7 files changed

+1550
-0
lines changed

jekyll/_cci2_ja/circleci-images.md

Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
---
2+
layout: classic-docs
3+
title: "Pre-Built CircleCI Docker Images"
4+
short-title: "Pre-Built CircleCI Docker Images"
5+
description: "Listing of available images maintained by CircleCI"
6+
categories: [containerization]
7+
order: 20
8+
---
9+
10+
ここでは、以下のセクションに沿って、CircleCI が提供しているビルド済みイメージの概要と、言語別、サービスタイプ別、タグ別のイメージについて説明します。
11+
12+
- 目次
13+
{:toc}
14+
15+
## 概要
16+
{:.no_toc}
17+
18+
CircleCI ではすぐに使える Docker イメージを多数提供しています。 一般に、これらのイメージは正式な Docker イメージの拡張版で、特に CI/CD にとって便利なツールが含まれます。 すべてのビルド済みイメージは、[Docker Hub の CircleCI Org](https://hub.docker.com/r/circleci/) から入手できます。 GitHub の `circleci-images` リポジトリには[各 Docker イメージのソースコード](https://github.com/circleci/circleci-images)も用意しています。 これらの <a href=」https://github.com/circleci-public/circleci-dockerfiles">Docker イメージの作成に使用する Dockerfile</a> は `circleci-dockerfiles` リポジトリで確認できます。
19+
20+
***メモ:**CircleCI は、バグの修正または機能の強化のために、スケジュールに沿ってイメージに変更を加えることがあり、こうした変更によって CircleCI ジョブ内でのイメージの動作に影響が生じる可能性があります。 メンテナンスのスケジュールは、[Discuss ページに **convenience-images** タグを付けて通知](https://discuss.circleci.com/tags/convenience-images)されますので、定期的にご確認ください。*
21+
22+
## ベストプラクティス
23+
24+
コンビニエンスイメージは、アップストリームイメージの最新版のビルドに基づいています。したがって、可能な限り最も当てはまるイメージを使用することをお勧めします。 これで、いずれかのアップストリームイメージによってイメージに意図しない変更が組み込まれることを防止し、より決定論的にビルドを行うことができます。
25+
26+
アップストリーム版を基にビルド済みイメージを作成している CircleCI では、`circleci/ruby:2.4-node` と記述した場合、最新版の Ruby 2.4-node コンテナを使うことを意味し、 あるいは `circleci/ruby:latest` としても結果は同じになります。 ベストプラクティスとして、タグを追加して使用するイメージを指定すれば、ビルドコンテナの状態を固定することができます。
27+
28+
したがって、アップストリームからの想定外の変更を防止するには、アップストリーム版の変更に伴ってそのイメージが変更されないよう、`circleci/ruby:2.4-node` と記述するのではなく、そのコンテナのさらに細かいバージョンを指定するようにタグを書き換えます。
29+
30+
たとえば、決まったバージョンの Debian ベースの OS のみを使用するには、`-jessie``-stretch` をコンテナ名の末尾に追記します。 `circleci/ruby:2.3.7-jessie``circleci/ruby:2.3-jessie` のように、使用するイメージのバージョンを限定的に指定します。 バージョンは CircleCI のすべての Docker イメージで指定できます。
31+
32+
また、使用するイメージを特定の SHA に至るまで指定することができます。 これにより、変更が加えられるまでの間、特定のイメージをテストすることができます。
33+
34+
使用するイメージを細かく指定するには、以下の 2つの方法があります。
35+
36+
- タグを使用してイメージのバージョンや OS を指定する
37+
- Docker イメージ ID を使用してバージョンを指定する
38+
39+
**メモ:**Node.js バリアントの Docker イメージ (`-node` で終わるタグ) に対しては、Node.js の LTS リリースがプリインストールされています。 独自に特定のバージョンの Node.js/NPM を使用する場合は、`.circleci/config.yml` 内の `run` ステップで設定できます。 Ruby イメージと共に特定のバージョンの Node.js をインストールする例については、以下を参照してください。
40+
41+
```yaml
42+
version: 2.0
43+
jobs:
44+
build:
45+
docker:
46+
- image: circleci/ruby:2.4.2-jessie-node
47+
steps:
48+
- checkout
49+
- run:
50+
name: "Node.js と npm を更新"
51+
command: |
52+
curl -sSL "https://nodejs.org/dist/v11.10.0/node-v11.10.0-linux-x64.tar.xz" | sudo tar --strip-components=2 -xJ -C /usr/local/bin/ node-v11.10.0-linux-x64/bin/node
53+
curl https://www.npmjs.com/install.sh | sudo bash
54+
- run:
55+
name: 現行バージョンのノードをチェック
56+
command: node -v
57+
```
58+
59+
### バージョンや OS を指定するイメージタグの使用方法
60+
{:.no_toc}
61+
62+
[イメージタグ](https://docs.docker.com/engine/reference/commandline/tag/#extended-description)を追加することで、Docker イメージの状態を固定できます。
63+
64+
たとえば、`circleci/golang` の代わりに `circleci/golang:1.8.6-jessie` を使用して、バージョンと OS を指定します。 後者はバージョンと OS を指定しているため、意図しない変更の影響を受けるリスクが抑えられます。
65+
66+
以降に掲載した[言語別の最新イメージタグ](#言語別の最新イメージタグ)の一覧を参照してください。
67+
68+
**メモ:**タグが指定されていない場合、Docker は `latest` タグを適用します。 `latest` タグは、イメージの最新の安定したリリースを示します。 ただし、このタグは予期せずに変更される可能性があるため、明示的なイメージタグを追加することをお勧めします。
69+
70+
### 特定のバージョンを指定する Docker イメージ ID の使用方法
71+
{:.no_toc}
72+
73+
すべての Docker イメージは[一意の ID](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier) を持ちます。 このイメージ ID を使用して、特定のバージョンのイメージを指定できます。
74+
75+
各イメージ ID は、以下のような不変の SHA256 ダイジェストです。
76+
77+
sha256:df1808e61a9c32d0ec110960fed213ab2339451ca88941e9be01a03adc98396e
78+
79+
80+
#### イメージ ID の確認方法
81+
{:.no_toc}
82+
83+
1. CircleCI にアクセスし、そのイメージを使用した過去のビルドを表示します。
84+
2. **[Test Summary (テストサマリー)]** タブの **Spin up Environment** ステップをクリックします。
85+
3. ログ内でそのイメージの **Digest** を確認します。
86+
4. そこに記載されたイメージ ID を以下のようにイメージ名の末尾に付加します。
87+
88+
circleci/ruby@sha256:df1808e61a9c32d0ec110960fed213ab2339451ca88941e9be01a03adc98396e
89+
90+
91+
## イメージのタイプ
92+
93+
CircleCI のコンビニエンスイメージは、**言語**イメージと**サービス**イメージのいずれかのカテゴリに分類されます。 すべてのイメージは、`circleci` ユーザーをシステムユーザーとして追加します。
94+
95+
**メモ:**以下のイメージは、それぞれの言語に対してビルドされた最新のアップストリームイメージに基づいています。 最新のイメージは変更される可能性が高いため、より限定的なタグを使用することが<a href="#best-practices」>ベストプラクティス</a>として推奨されます。
96+
97+
### 言語イメージ
98+
{:.no_toc}
99+
100+
言語イメージは、一般的なプログラミング言語に対応するコンビニエンスイメージです。 これらのイメージには、関連する言語と[共通して使用されるツール](#プリインストールツール)の両方が含まれます。 言語イメージは、ユーザー設定内の `docker` キーの下に最初にリストされ、実行中は[プライマリコンテナ]({{ site.baseurl }}/ja/2.0/glossary/#primary-container){:target="_blank"}になります。
101+
102+
CircleCI は、以下の言語に対応するイメージを提供しています。
103+
104+
- [Android](#android)
105+
- [Clojure](#clojure)
106+
- [Elixir](#elixir)
107+
- [Go (Golang)](#go-golang)
108+
- [JRuby](#jruby)
109+
- [Node.js](#nodejs)
110+
- [OpenJDK (Java)](#openjdk)
111+
- [PHP](#php)
112+
- [Python](#python)
113+
- [Ruby](#ruby)
114+
- [Rust](#rust)
115+
116+
上記以外の言語を使用する場合は、CircleCI が提供する [Dockerfile Wizard](https://github.com/circleci-public/dockerfile-wizard) を使用してカスタムイメージを作成できます。
117+
118+
#### 言語イメージのバリアント
119+
{:.no_toc}
120+
121+
CircleCI は、言語イメージに対していくつかのバリアントを用意しています。 これらのバリアントを使用するには、以下のサフィックスの 1つをイメージタグの末尾に追加します。
122+
123+
- `-node`:多言語対応の Node.js が含まれます。
124+
- `-browsers`:Chrome、Firefox、Java 8、および Geckodriver が含まれます。
125+
- `-browsers-legacy`:Chrome、Firefox、Java 8、および PhantomJS が含まれます。
126+
- `-node-browsers`:`-node` バリアントと `-browsers` バリアントの組み合わせです
127+
- `-node-browsers-legacy`:`-node` バリアントと `-browsers-legacy` バリアントの組み合わせです。
128+
129+
たとえば、`circleci/golang:1.9` イメージにブラウザーを追加する場合は、`circleci/golang:1.9-browsers` イメージを使用します。
130+
131+
### サービスイメージ
132+
{:.no_toc}
133+
134+
サービスイメージは、データベースなどのサービスに対応するコンビニエンスイメージです。 これらのイメージは言語イメージの**後に**リストされ、セカンダリサービスコンテナになります。
135+
136+
CircleCI は、以下のサービスに対応するイメージを提供しています。
137+
138+
- [buildpack-deps](#buildpack-deps)
139+
- [DynamoDB](#dynamodb)
140+
- [MariaDB](#mariadb)
141+
- [MongoDB](#mongodb)
142+
- [MySQL](#mysql)
143+
- [PostgreSQL](#postgresql)
144+
- [Redis](#redis)
145+
146+
#### サービスイメージのバリアント
147+
{:.no_toc}
148+
149+
CircleCI は、サービスイメージに対してバリアント 1つのみ用意しています。 RAM ボリュームを使用してビルドを高速化するには、サービスイメージタグの末尾に `-ram` サフィックスを追加します。
150+
151+
たとえば、`circleci/postgres:9.5-postgis` イメージで RAM ボリュームを使用する場合は、`circleci/postgres:9.5-postgis-ram` イメージを使用します。
152+
153+
## プリインストールツール
154+
155+
すべてのコンビニエンスイメージは、追加のツールを使用して拡張されています。
156+
157+
[Android イメージ](https://hub.docker.com/r/circleci/android)以外のすべてのイメージには、以下のパッケージが含まれ、`apt-get` を使用してインストールされます。
158+
159+
- `bzip2`
160+
- `ca-certificates`
161+
- `curl`
162+
- `git`
163+
- `gnupg`
164+
- `gzip`
165+
- `locales`
166+
- `mercurial`
167+
- `net-tools`
168+
- `netcat`
169+
- `openssh-client`
170+
- `parallel`
171+
- `sudo`
172+
- `tar`
173+
- `unzip`
174+
- `wget`
175+
- `xvfb`
176+
- `zip`
177+
178+
特定の CircleCI イメージバリアントにインストールされる特定パッケージの具体的なバージョンは、そのバリアントの基本イメージにインストールされている Linux ディストリビューション/バージョンのパッケージディレクトリに含まれるデフォルトバージョンに依存します。 大部分の CircleCI コンビニエンスイメージは、[Debian Jessie](https://packages.debian.org/jessie/) ベースまたは [Stretch](https://packages.debian.org/stretch/) ベースのイメージですが、[Ubuntu](https://packages.ubuntu.com) ベースのイメージを拡張したイメージも提供されています。 CircleCI イメージの各バリアントの詳細については、[circleci-dockerfiles](https://github.com/circleci-public/circleci-dockerfiles) リポジトリを参照してください。
179+
180+
以下のパッケージは、`curl` などの方法でインストールされます。
181+
182+
- [Docker クライアント](https://docs.docker.com/install/)
183+
- [Docker Compose](https://docs.docker.com/compose/overview/)
184+
- [dockerize](https://github.com/jwilder/dockerize)
185+
- [jq](https://stedolan.github.io/jq/)
186+
187+
## 言語別の最新イメージタグ
188+
189+
最新のコンビニエンスイメージを言語別に紹介します。 各イメージの内容の詳細については、[対応する Dockerfile](https://github.com/circleci-public/circleci-dockerfiles) を参照してください。
190+
191+
**メモ:**[言語イメージのバリアント](#言語イメージのバリアント)および[サービスイメージのバリアント](#サービスイメージのバリアント)以外のイメージでどのようなタグが使用されるかを CircleCI は**関知しません**。 これらのタグは、アップストリームプロジェクトによって選択および維持されます。 特定のタグがイメージ間で同じ意味を持つと断定しないように注意してください。
192+
193+
{% assign images = site.data.docker-image-tags | sort %}
194+
{% for image in images %}
195+
196+
### {{ image[1].name }}
197+
{:.no_toc}
198+
199+
**リソース**
200+
201+
- [DockerHub](https://hub.docker.com/r/circleci/{{ image[0] }}) - このイメージがホスティングされる場所。便利な指示書も用意されています。
202+
- [Dockerfiles](https://github.com/CircleCI-Public/circleci-dockerfiles/tree/master/{{ image[0] }}/images) - このイメージのビルド元の Dockerfile。
203+
204+
**使用方法:**config.yml の `docker:` に以下の行を追加します。
205+
206+
`- image: circleci/{{ image[0] }}:[TAG]`
207+
208+
**最新のタグ**<small>(すべてのイメージタグは<a href="{{ site.baseurl }}/ja/2.0/docker-image-tags.json">こちら</a>{:target="_blank"})</small>
209+
210+
<ul class="list-3cols">
211+
{% assign tags = image[1].tags | sort | reverse %}
212+
{% assign tagCounter = 1 %}
213+
{% for tag in tags %}
214+
{% if tagCounter > 99 %}
215+
{% break %}
216+
{% endif %}
217+
{% unless tag contains "-browsers" or tag contains "-node" or tag contains "-ram" %}
218+
<li>
219+
{{ tag }}
220+
</li>
221+
{% assign tagCounter = tagCounter | plus:1 %}
222+
{% endunless %}
223+
{% endfor %}
224+
</ul>
225+
226+
メモ:このイメージで使用可能なバリアントは、上記のタグにバリアントタグを追加することで使用できます。 すべてのイメージタグは[こちら]({{ site.baseurl }}/ja/2.0/docker-image-tags.json){:target="_blank"}で確認できます。
227+
228+
* * *
229+
230+
{% endfor %}
231+
232+
## 関連項目
233+
{:.no_toc}
234+
235+
プライベートリポジトリまたは Amazon ECR にあるイメージの使用をビルドに承認する方法については、[プライベートイメージの使用]({{ site.baseurl }}/ja/2.0/private-images/)を参照してください。

0 commit comments

Comments
 (0)