Bitbucket Cloud の使用を開始する
Bitbucket Cloud を初めてお使いですか? 新規ユーザー用のガイドをご利用ください。
definitions オプションでは、Bitbucket Pipelines のカスタム依存関係キャッシュとサービス コンテナー (データベース サービスを含む) を定義できます。
キャッシュとサービス コンテナーを定義するには、次のオプションを使用できます。
definitions プロパティは、パイプライン構成の別の場所で使用されるリソースを定義するために使用されます。リソースには、以下が含まれる可能性があります。
別々の Docker コンテナーで実行されるサービス – 「データベースとサービス コンテナー」をご参照ください。
キャッシュ – 「キャッシュ」をご参照ください。
YAML アンカー - yaml を分割して定義して使いやすくする方法。「YAML アンカー」を参照してください。
プロパティ — definitions
必須 — いいえ
データ タイプ — ブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — YAML ルート (definitions は必ず最上位のプロパティとなります)
指定可能な子プロパティ — caches プロパティと services プロパティが 1 つ以上必要です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
definitions:
caches:
bundler-packages: vendor/bundle
services:
my-mariadb:
image: mariadb:latest
variables:
MARIADB_USER: $MY_MARIADB_USER
MARIADB_PASSWORD: $MY_MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD: $MARIADB_ADMIN_PASSWORD
pipelines:
default:
- step:
name: Hello world example
services:
- my-mariadb
caches:
- bundler-packages
script:
- ruby -e 'print "Hello, World\n"'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
definitions:
steps:
- step: &build-test
name: Build and test
script:
- mvn package
artifacts:
- target/**
pipelines:
branches:
develop:
- step: *build-test
main:
- step: *build-test
Bitbucket Pipelines では、ビルドの依存関係やディレクトリのキャッシングをサポートし、ビルドの高速化と消費されるビルド時間の削減を実現しています。
定義済みのキャッシュもいくつか利用可能です。定義済みのキャッシュの完全なリストについては、「キャッシュ — 定義済みのキャッシュ」をご参照ください。
caches オプションの使用に関する情報は、「キャッシュ」をご参照ください。
プロパティ — caches
必須 — いいえ
データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)。名前はキャッシュ名、値は次のいずれかです。
ファイルまたはディレクトリ パスを表す文字列 (glob パターンを使用できます)
キャッシュ キーとパス オプションを含むノード
指定可能な親プロパティ — definitions
指定可能な子プロパティ — 次のいずれかです。
ファイルまたはディレクトリ パスを表す文字列を提供する場合: なし
キーとパスのオプションを使用している場合: キャッシュ名 (caches の下にネストされます)
1
2
3
4
5
6
7
8
9
10
11
12
definitions:
caches:
my-bundler-cache: vendor/bundle
pipelines:
default:
- step:
caches:
- my-bundler-cache # Cache is defined above in the definitions section
script:
- bundle install --path vendor/bundle
- ruby -e 'print "Hello, World\n"'
keyfiles オプションは、変更を監視するファイルを指定するために使用します。path で指定されたキャッシュは、key files の変更に基づいてバージョン管理されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
definitions:
caches:
my-bundler-cache:
key:
files:
- Gemfile.lock
- "**/*.gemspec" # glob patterns are supported for cache key files
path: vendor/bundle
pipelines:
default:
- step:
caches:
- my-bundler-cache # Cache is defined above in the definitions section
script:
- bundle install --path vendor/bundle
- ruby -e 'print "Hello, World\n"'
キャッシュの key オプションは、キャッシュの新しいバージョンをいつ作成するかを決定する基準を定義します。バージョン管理に使用されるキャッシュ キーは、files が定義されたハッシュに基づいています。
プロパティ — key
必須 — いいえ
データ タイプ — files のブロック
指定可能な親プロパティ — キャッシュ名 (caches の下にネストされます)
指定可能な子プロパティ — files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
definitions:
caches:
my-bundler-cache:
key:
files:
- Gemfile.lock
- "**/*.gemspec" # glob patterns are supported for cache key files
path: vendor/bundle
pipelines:
default:
- step:
caches:
- my-bundler-cache # Cache is defined above in the definitions section
script:
- bundle install --path vendor/bundle
- ruby -e 'print "Hello, World\n"'
キャッシュ キーの files プロパティには、変更を監視するリポジトリ内のファイルがリストされます。1 つ以上の files のハッシュが変更されると、新しいバージョンのキャッシュが作成されます。
プロパティ — files
必須 — はい
データ タイプ — ファイル名に一致する文字列のリスト (glob パターンを使用できます)
指定可能な親プロパティ — key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
definitions:
caches:
my-bundler-cache:
key:
files:
- Gemfile.lock
- "**/*.gemspec" # glob patterns are supported for cache key files
path: vendor/bundle
pipelines:
default:
- step:
caches:
- my-bundler-cache # Cache is defined above in the definitions section
script:
- bundle install --path vendor/bundle
- ruby -e 'print "Hello, World\n"'
キャッシュの path オプションは、キャッシュするパスを定義します。これは、ソース リポジトリ外の場合があります。
プロパティ — path
必須 — いいえ
データ タイプ — 文字列としてのユーザー定義のファイル パス (glob パターンを使用できます)
指定可能な親プロパティ — キャッシュ名 (caches の下にネストされます)
keyfiles オプションは、変更を監視するファイルを指定するために使用します。path で指定されたキャッシュは、key files の変更に基づいてバージョン管理されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
definitions:
caches:
my-bundler-cache:
key:
files:
- Gemfile.lock
- "**/*.gemspec" # glob patterns are supported for cache key files
path: vendor/bundle
pipelines:
default:
- step:
caches:
- my-bundler-cache # Cache is defined above in the definitions section
script:
- bundle install --path vendor/bundle
- ruby -e 'print "Hello, World\n"'
Bitbucket Pipelines は、サービスごとに個別の Docker コンテナーを作成できます。これによってビルドが高速化されて、サービスの編集が容易になります。サービスの作成に関する詳細は、「データベースとサービス コンテナー」をご参照ください。この services オプションを使用することで、サービスを定義してパイプライン ステップで使用できるようになります。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — services
必須 — いいえ
データ タイプ — ブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — definitions
指定可能な子プロパティ — ユーザー定義の文字列。この文字列はサービスの名前になります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
definitions:
services:
my-service-name:
image: mariadb:latest
variables:
MARIADB_USER: $MY_MARIADB_USER
MARIADB_PASSWORD: $MY_MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD: $MARIADB_ADMIN_PASSWORD
pipelines:
default:
- step:
name: Hello world example
services:
- my-service-name
script:
- echo "Hello, World"
image オプションに関する詳細 (サービスでの image オプションの使用方法を含む) については、「Docker イメージ オプション」をご参照ください。
memory オプションは、サービス コンテナーで利用可能なメモリ (メガバイト単位) を制限するために使用されます。4096 MB (または size: 2x ビルドの場合は 8192 MB) は、step に割り当てられるメモリの総量です (スクリプトやパイプライン サービスを含む)。たとえば、サービスが 3072 MBを必要とする場合、そのサービスによるステップの実行に使用できるのは 1024 MB のみとなります。サービス コンテナーのメモリ制限に関する詳細は、「データベースとサービス コンテナー — サービス メモリの制限」をご参照ください。
プロパティ — memory
必須 — いいえ
データ タイプ — 整数
指定可能な値 — 128 MB から 4096 MB まで (または size: 2x ビルドの場合は 256 から 8192 まで)。
既定値 — 1024
指定可能な親プロパティ — サービス名 (services の下にネストされます)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
definitions:
services:
my-postgresql-db:
image: postgres:latest
memory: 512
variables:
POSTGRES_PASSWORD: $MY_POSTGRES_PASSWORD
pipelines:
default:
- step:
name: Hello world example
services:
- my-postgresql-db
script:
- echo "Hello, World"
自社ホストのパイプライン ランナーのみが利用可能です。
type オプションは、Docker サービス コンテナー (Docker-in-Docker を実行する) を指定するために使用されます。対象となるのは次のとおりです。
カスタム名の Docker-in-Docker サービス コンテナー
複数の Docker-in-Docker サービス コンテナー
詳細情報
カスタムの Docker-in-Docker サービスを追加するには、「bitbucket-pipelines.yml でランナーを設定する — Docker-in-Docker のカスタム イメージ」をご参照ください。
Docker-in-Docker サービスを使用するには、「Bitbucket Pipelines で Docker コマンドを実行する」をご参照ください。
プロパティ — type
必須 — いいえ
データ タイプ — 文字列
使用可能な値 — docker
指定可能な親プロパティ — サービス名 (services の下にネストされます)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
definitions:
services:
docker: # Default Docker-in-Docker service
image: docker:dind
my-docker-in-docker-name:
image: docker:latest
type: docker
docker-custom:
type: docker
image: docker:dind
pipelines:
default:
- step:
script:
- docker version
- docker run hello-world
services:
- docker
- step:
script:
- docker version
- docker run hello-world
services:
- my-docker-in-docker-name
- step:
script:
- docker version
- docker run hello-world
services:
- docker-custom
サービスの variables オプションは、環境変数をサービス コンテナーに渡すために使用され、通常はサービスの設定に使用されます。サービスの作成に関する詳細は、「データベースとサービス コンテナー」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — variables
必須 — いいえ
データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — サービス名 (services の下にネストされます)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
definitions:
services:
my-service-name:
image: mariadb:latest # Official MariaDB image from DockerHub: https://hub.docker.com/_/mariadb/
variables:
MARIADB_USER: $MY_MARIADB_USER
MARIADB_PASSWORD: $MY_MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD: $MARIADB_ADMIN_PASSWORD
pipelines:
default:
- step:
name: Hello world example
services:
- my-service-name
script:
- echo "Hello, World"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
definitions:
services:
my-postgresql-db:
image: postgres:latest # Official PostgreSQL image from DockerHub: https://hub.docker.com/_/postgres
variables:
POSTGRES_PASSWORD: $MY_POSTGRES_PASSWORD
pipelines:
default:
- step:
name: Hello world example
services:
- my-postgresql-db
script:
- echo "Hello, World"
pipelines 変数で定義されているすべてのパイプラインがエクスポートされ、同じワークスペース内の他のリポジトリによってインポートできます。
プロパティ — pipelines
必須 — いいえ
データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)。名前はパイプライン名、値は pipeline です。
指定可能な親プロパティ — definitions
指定可能な子プロパティ — step、stage、または parallel プロパティが 1 つ以上必要です。
1
2
3
4
5
6
7
8
9
10
export: true
definitions:
caches:
services:
pipelines:
export-pipeline:
- step:
script:
- echo hello
この内容はお役に立ちましたか?