Docker イメージ オプション
Bitbucket Pipelines は、ほとんどのビルドを Docker コンテナーで実行します (Linux シェル、macOS、Windows ランナーでのビルドを除く)。image
オプションでは、カスタム Docker イメージをビルド環境として使用できます。これらのオプションのほとんどは、非公開 Docker レジストリからのイメージの取得に関するものです。
Docker Hub、AWS、GCP、Azure、インターネットでアクセス可能な自社ホスト型レジストリにホストされる、公開または非公開の Docker イメージをサポートしています。現在、Bitbucket Pipelines では、インターネット経由でアクセスできない Docker イメージにはアクセスできません。
Bitbucket Pipelines でのカスタム Docker イメージの使用に関する詳細は、「Docker イメージをビルド環境として使用する」をご参照ください。
Docker イメージ オプション
次のオプションによって、bitbucket-pipelines.yml 内のグローバルなパイプライン ステップ用、個別のステップ用、またはサービス コンテナー用に、Docker イメージを設定できます。
画像
Bitbucket Pipelines は、次のいずれかの場所におけるビルドの実行時に Docker コンテナーを使用します。
Bitbucket Cloud のインフラストラクチャ上、または
Linux Docker の自社ホスト ランナー上。
Bitbucket が提供する "推奨" 既定イメージを使用するか、カスタム イメージを定義できます。非公開ネットワークでホストされていない、任意の公開または非公開の Docker イメージを指定できます。使用するイメージはグローバル レベルで設定できます。また、ステップごとにオーバーライドできます。
image
オプションは、公開のイメージまたは非公開のイメージを指定するために使用できます。一般にアクセス可能な Docker イメージの場合は、次のような単一行のオプションとして image
を使用できます。
image: atlassian/default-image:IMAGE_TAG_HERE
非公開イメージの場合は、次のような image
オプションのブロック バージョンをご利用ください。
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
例 — image オプションを使用して、パイプライン全体のイメージを設定する
image: bash:latest # https://hub.docker.com/_/bash
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
例 — image オプションを使用して、パイプライン ステップで別のイメージを使用する
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"
例 — Docker Hub 外でホストされている公開イメージを使用する
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 の認証メソッドによって異なる場合があります)。
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) から非公開イメージを取得する方法を示しています。
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
例 — name を使用して、公開されている DockerHub イメージを取得する
image:
name: my-account/bash:latest
pipelines:
default:
- step:
script:
- echo "Hello, World!"
例 — name を使用して、ステップで使用するイメージを上書きする
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:latest
script:
- echo "Hello, World!"
例 — name を使用して、サービス コンテナーに使用するイメージを設定する
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
例 — username と password を使用して、非公開 Docker イメージを取得する
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
pipelines:
default:
- step:
script:
- echo "Hello, World!"
例 — username と password を使用して、ステップに使用したビルド イメージを非公開イメージでオーバーライドする
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
script:
- echo "Hello, World!"
例 — username と password を使用して、非公開イメージを使用するサービス コンテナーを定義する
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
例 — password と username を使用して、非公開 Docker イメージを取得する
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
pipelines:
default:
- step:
script:
- echo "Hello, World!"
例 — password と username を使用して、ステップに使用したビルド イメージを非公開イメージで上書きする
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:latest
username: $CONTAINER_REGISTRY_USERNAME
password: $CONTAINER_REGISTRY_PASSWORD
script:
- echo "Hello, World!"
例 — password と username を使用して、非公開イメージを使用するサービス コンテナーを定義する
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
例 — run-as-user を使用して、特定のユーザーとしてパイプライン ステップを実行する (UID = 1000)
image:
name: my/bash:latest
run-as-user: 1000
pipelines:
default:
- step:
script:
- echo "Hello, World!"
例 — run-as-user を使用して、特定のユーザーとして 1 つのパイプライン ステップを実行する (UID = 1000)
image: my/bash:lts
pipelines:
default:
- step:
image:
name: my/bash:lts
run-as-user: 1000
script:
- echo "Hello, World!"
例 — run-as-user を使用して、特定のユーザーとして 1 つのサービス コンテナーを実行する (UID = 1000)
definitions:
services:
my-service:
image:
name: my/bash:latest
run-as-user: 1000
pipelines:
default:
- step:
services:
- my-service
script:
- echo "Hello, World!"
AWS
イメージの 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
指定可能な子プロパティ — 次のいずれかが必要です。
例 — aws、access-key、secret-key を使用して、AWS ECR から非公開イメージを取得する
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:
oidc: true
script:
- echo "Hello, World!"
例 — aws と oidc-role を使用して、AWS ECR から非公開イメージを取得する
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:
oidc: true
script:
- echo "Hello, World!"
Access-key と Secret-key
Amazon Elastic Container Registry (AWS ECR) の非公開イメージを使用する場合は、access-key
と secret-key
の各オプションを使用する必要があります。
Access-key
aws
access-key
プロパティを secret-key
プロパティと一緒に使用すると、Bitbucket Pipelines が Amazon Elastic Container Registry (AWS ECR) でホストされている非公開 Docker イメージにアクセスできるようになります。詳細は「AWS ECR (EC2 Container Registry) でホストされる非公開イメージ」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — access-key
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — aws
例 — aws、access-key、secret-key を使用して、AWS ECR から非公開イメージを取得する
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!"
例 — aws、access-key、secret-key を使用して、単一ステップ用に AWS ECR の非公開イメージを取得する
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!"
例 — aws、access-key、secret-key を使用して、AWS ECR の非公開イメージをサービス コンテナーとして使用する
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!"
Secret-key
aws
secret-key
プロパティを access-key
プロパティと一緒に使用すると、Bitbucket Pipelines が Amazon Elastic Container Registry (AWS ECR) でホストされている非公開 Docker イメージにアクセスできるようになります。詳細は「AWS ECR (EC2 Container Registry) でホストされる非公開イメージ」をご参照ください。
シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — secret-key
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — aws
例 — aws、secret-key、access-key を使用して、AWS ECR の非公開イメージを取得する
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!"
例 — aws、secret-key、access-key を使用して、単一ステップ用に AWS ECR の非公開イメージを取得する
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!"
例 — aws、secret-key、access-key を使用して、AWS ECR の非公開イメージをサービス コンテナーとして使用する
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!"
OIDC-roles
aws
oidc-role
プロパティによって、Bitbucket Pipelines が Amazon Elastic Container Registry (AWS ECR) でホストされている非公開 Docker イメージにアクセスできるようになります。詳細は「OpenID Connect で、Pipelines の AWS ECR イメージを使用する」をご参照ください。
プロパティ — oidc-role
必須 — いいえ
データ タイプ — 文字列
指定可能な親プロパティ — aws
例 — aws と oidc-role を使用して、AWS ECR から非公開イメージを取得する
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:
oidc: true
script:
- echo "Hello, World!"
例 — aws と oidc-role を使用して、単一ステップ用に AWS ECR の非公開イメージを取得する
image: my/bash:lts
pipelines:
default:
- step:
oidc: true
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!"
例 — aws と oidc-role を使用して、AWS ECR の非公開イメージをサービス コンテナーとして使用する
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:
oidc: true
services:
- my-service
script:
- echo "Hello, World!"
この内容はお役に立ちましたか?