Bitbucket Cloud の使用を開始する
Bitbucket Cloud を初めてお使いですか? 新規ユーザー用のガイドをご利用ください。
Bitbucket Pipelines は、ほとんどのビルドを Docker コンテナーで実行します (Linux シェル、macOS、Windows ランナーでのビルドを除く)。image オプションでは、カスタム Docker イメージをビルド環境として使用できます。これらのオプションのほとんどは、非公開 Docker レジストリからのイメージの取得に関するものです。
Docker Hub、AWS、GCP、Azure、インターネットでアクセス可能な自社ホスト型レジストリにホストされる、公開または非公開の Docker イメージをサポートしています。現在、Bitbucket Pipelines では、インターネット経由でアクセスできない Docker イメージにはアクセスできません。
Bitbucket Pipelines でのカスタム Docker イメージの使用に関する詳細は、「Docker イメージをビルド環境として使用する」をご参照ください。
次のオプションによって、bitbucket-pipelines.yml 内のグローバルなパイプライン ステップ用、個別のステップ用、またはサービス コンテナー用に、Docker イメージを設定できます。
Bitbucket Pipelines は、次のいずれかの場所におけるビルドの実行時に Docker コンテナーを使用します。
Bitbucket Cloud のインフラストラクチャ上、または
Linux Docker の自社ホスト ランナー上。
Bitbucket が提供する既定のイメージ (atlassian/default-image:latest) を使用するか、カスタム イメージを定義できます。非公開ネットワークでホストされていない、任意の公開または非公開の Docker イメージを指定できます。使用するイメージはグローバル レベルで設定できます。また、ステップごとにオーバーライドできます。
image オプションは、公開のイメージまたは非公開のイメージを指定するために使用できます。一般にアクセス可能な Docker イメージの場合は、次のような単一行のオプションとして image を使用できます。
1
image: atlassian/default-image:latest
非公開イメージの場合は、次のような image オプションのブロック バージョンをご利用ください。
1
2
3
4
image:
name: us-east1-docker.pkg.dev/my-project/my-repo/test-image:latest
username: $DOCKER_REGISTRY_USERNAME
password: $DOCKER_REGISTRY_PASSWORD
イメージの使用と作成に関する詳細は、「Docker イメージをビルド環境として使用する」をご参照ください。
プロパティ — image
必須 — いいえ
データ タイプ — 次のいずれか:
文字列
改行で区切られたキーと値のペアのブロック (YAML仕様 - ブロック マッピング)
既定値 — atlassian/default-image:latest (詳細は「Docker イメージをビルド環境として使用する — 既定のビルド環境」をご参照ください)
指定可能な親プロパティ — services、step、または YAML ルート (image が最上位のプロパティでも可)
許可されている子プロパティ — name、username、password、aws、run-as-user
1
2
3
4
5
6
7
8
image: bash:latest # https://hub.docker.com/_/bash
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
image: bash:latest # https://hub.docker.com/_/bash
pipelines:
default:
- step:
name: Step using the Bash image
script:
- bash --version
- step:
name: Step using the default Bitbucket Pipelines image
image: atlassian/default-image:latest # https://hub.docker.com/r/atlassian/default-image/
script:
- echo "Hello, World from the default Pipelines image"
1
2
3
4
5
6
7
8
9
10
11
12
13
image: public.ecr.aws/docker/library/python:slim # https://gallery.ecr.aws/docker/library/python
pipelines:
default:
- step:
name: Step using the Python image
script:
- echo "Python version:" $(python --version)
- step:
name: Step using the default Bitbucket Pipelines image
image: atlassian/default-image:latest # https://hub.docker.com/r/atlassian/default-image/
script:
- echo "Node.js version:" $(node -v)
この例は、Docker Hub から非公開イメージを取得する方法を示しています (実際の使用方法は、Docker Hub の認証メソッドによって異なる場合があります)。
1
2
3
4
5
6
7
8
9
10
11
12
image:
name: my-docker-hub-account/my-docker-image:latest
username: $DOCKER_HUB_USERNAME
password: $DOCKER_HUB_PASSWORD
run-as-user: 1001
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
この例は、Docker Hub 以外のイメージ リポジトリ (この場合は Google Artifact Registry) から非公開イメージを取得する方法を示しています。
1
2
3
4
5
6
7
8
9
10
11
image:
name: us-east1-docker.pkg.dev/my-project/my-repo/test-image:latest
username: $DOCKER_REGISTRY_USERNAME
password: $DOCKER_REGISTRY_PASSWORD
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
イメージの name プロパティは、非公開イメージを使用する場合に、どの Docker イメージを使うかを指定できます。この際、ログイン認証情報が必要です。非公開 Docker イメージへのアクセスの設定に関する詳細は、「Docker イメージをビルド環境として使用する — 非公開ビルド イメージを使用する」をご参照ください。
プロパティ — name
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — image
1
2
3
4
5
6
7
8
image:
name: my-account/bash:latest
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:latest
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
definitions:
services:
my-service:
image:
name: my/bash:latest
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
イメージの username プロパティを password プロパティと一緒に使用すると、Bitbucket Pipelines が非公開 Docker イメージにアクセスできるようになります。非公開 Docker イメージへのアクセスの設定に関する詳細は、「Docker イメージをビルド環境として使用する — 非公開ビルド イメージを使用する」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — username
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — image
1
2
3
4
5
6
7
8
9
10
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
definitions:
services:
my-service:
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
イメージの password プロパティを username プロパティと一緒に使用すると、Bitbucket Pipelines が非公開 Docker イメージにアクセスできるようになります。非公開 Docker イメージへのアクセスの設定に関する詳細は、「Docker イメージをビルド環境として使用する — 非公開ビルド イメージを使用する」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — password
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — image
1
2
3
4
5
6
7
8
9
10
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
definitions:
services:
my-service:
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
イメージの既定ユーザーは、run-as-user プロパティでユーザー UID を指定することでオーバーライドできます。指定されたユーザー UID は、イメージですでに定義されているユーザーであり、有効なホーム ディレクトリを持っている必要があります。
プロパティ — run-as-user
必須 — いいえ
データ タイプ — 整数
指定可能な値 — イメージ上の任意のユーザーの UID
既定値 — 0 (ルート ユーザー)
指定可能な親プロパティ — image
1
2
3
4
5
6
7
8
9
image:
name: my/bash:latest
run-as-user: 1000
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:lts
run-as-user: 1000
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
definitions:
services:
my-service:
image:
name: my/bash:latest
run-as-user: 1000
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
イメージの aws プロパティによって、パイプラインが Amazon Elastic Container Registry (AWS ECR) でホストされている非公開イメージを使用できます。aws プロパティは、2 つの認証方法をサポートしています。
アクセス キーとシークレット キー (access-key と secret-key) を使用する
OpenID Connect (OIDC) ロール (oidc-role) を使用する
詳細は「AWS ECR (EC2 Container Registry) でホストされる非公開イメージ」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — aws
必須 — いいえ
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — image
指定可能な子プロパティ — 次のいずれかが必要です。
1
2
3
4
5
6
7
8
9
10
11
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
oidc-role: arn:aws:iam::<aws_account_id>:role/<your_role_name>
pipelines:
default:
- step:
script:
- echo "Hello, World!"
Amazon Elastic Container Registry (AWS ECR) の非公開イメージを使用する場合は、access-key と secret-key の各オプションを使用する必要があります。
aws access-key プロパティを secret-key プロパティと一緒に使用すると、Bitbucket Pipelines が Amazon Elastic Container Registry (AWS ECR) でホストされている非公開 Docker イメージにアクセスできるようになります。詳細は「AWS ECR (EC2 Container Registry) でホストされる非公開イメージ」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — access-key
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — aws
1
2
3
4
5
6
7
8
9
10
11
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
image: my/bash:lts
pipelines:
default:
- step:
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
definitions:
services:
my-service:
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
aws secret-key プロパティを access-key プロパティと一緒に使用すると、Bitbucket Pipelines が Amazon Elastic Container Registry (AWS ECR) でホストされている非公開 Docker イメージにアクセスできるようになります。詳細は「AWS ECR (EC2 Container Registry) でホストされる非公開イメージ」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — secret-key
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — aws
1
2
3
4
5
6
7
8
9
10
11
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
image: my/bash:lts
pipelines:
default:
- step:
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
definitions:
services:
my-service:
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
aws oidc-role プロパティによって、Bitbucket Pipelines が Amazon Elastic Container Registry (AWS ECR) でホストされている非公開 Docker イメージにアクセスできるようになります。詳細は「OpenID Connect で、Pipelines の AWS ECR イメージを使用する」をご参照ください。
プロパティ — oidc-role
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — aws
1
2
3
4
5
6
7
8
9
10
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
oidc-role: arn:aws:iam::<aws_account_id>:role/<your_role_name>
pipelines:
default:
- step:
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
image: my/bash:lts
pipelines:
default:
- step:
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
oidc-role: arn:aws:iam::<aws_account_id>:role/<your_role_name>
script:
- echo "Hello, World!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
definitions:
services:
my-service:
image:
name: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/bash:latest
aws:
oidc-role: arn:aws:iam::<aws_account_id>:role/<your_role_name>
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
この内容はお役に立ちましたか?