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 が提供する既定のイメージ (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

必須 — いいえ

データ タイプ — 次のいずれか:

既定値atlassian/default-image:latest (詳細は「Docker イメージをビルド環境として使用する — 既定のビルド環境」をご参照ください)

指定可能な親プロパティservicesstep、または YAML ルート (image が最上位のプロパティでも可)

許可されている子プロパティnameusernamepasswordawsrun-as-user

例 — image オプションを使用して、パイプライン全体のイメージを設定する

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!"

例 — image オプションを使用して、パイプライン ステップで別のイメージを使用する

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"

例 — Docker Hub 外でホストされている公開イメージを使用する

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

例 — name を使用して、公開されている DockerHub イメージを取得する

1 2 3 4 5 6 7 8 image: name: my-account/bash:latest pipelines: default: - step: script: - echo "Hello, World!"

例 — name を使用して、ステップで使用するイメージを上書きする

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!"

例 — name を使用して、サービス コンテナーに使用するイメージを設定する

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

例 — username と password を使用して、非公開 Docker イメージを取得する

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!"

例 — username と password を使用して、ステップに使用したビルド イメージを非公開イメージでオーバーライドする

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!"

例 — username と password を使用して、非公開イメージを使用するサービス コンテナーを定義する

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

例 — password と username を使用して、非公開 Docker イメージを取得する

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!"

例 — password と username を使用して、ステップに使用したビルド イメージを非公開イメージで上書きする

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!"

例 — password と username を使用して、非公開イメージを使用するサービス コンテナーを定義する

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

例 — run-as-user を使用して、特定のユーザーとしてパイプライン ステップを実行する (UID = 1000)

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!"

例 — run-as-user を使用して、特定のユーザーとして 1 つのパイプライン ステップを実行する (UID = 1000)

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!"

例 — run-as-user を使用して、特定のユーザーとして 1 つのサービス コンテナーを実行する (UID = 1000)

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

イメージの aws プロパティによって、パイプラインが Amazon Elastic Container Registry (AWS ECR) でホストされている非公開イメージを使用できます。aws プロパティは、2 つの認証方法をサポートしています。

  • アクセス キーとシークレット キー (access-keysecret-key) を使用する

  • OpenID Connect (OIDC) ロール (oidc-role) を使用する

詳細は「AWS ECR (EC2 Container Registry) でホストされる非公開イメージ」をご参照ください。

シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。

プロパティaws

必須 — いいえ

データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティimage

指定可能な子プロパティ — 次のいずれかが必要です。

例 — aws、access-key、secret-key を使用して、AWS ECR から非公開イメージを取得する

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!"

例 — aws と oidc-role を使用して、AWS ECR から非公開イメージを取得する

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!"

Access-key と Secret-key

Amazon Elastic Container Registry (AWS ECR) の非公開イメージを使用する場合は、access-keysecret-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 から非公開イメージを取得する
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!"
例 — aws、access-key、secret-key を使用して、単一ステップ用に AWS ECR の非公開イメージを取得する
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!"
例 — aws、access-key、secret-key を使用して、AWS ECR の非公開イメージをサービス コンテナーとして使用する
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!"
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 の非公開イメージを取得する
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!"
例 — aws、secret-key、access-key を使用して、単一ステップ用に AWS ECR の非公開イメージを取得する
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!"
例 — aws、secret-key、access-key を使用して、AWS ECR の非公開イメージをサービス コンテナーとして使用する
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!"

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 から非公開イメージを取得する
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!"
例 — aws と oidc-role を使用して、単一ステップ用に AWS ECR の非公開イメージを取得する
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!"
例 — aws と oidc-role を使用して、AWS ECR の非公開イメージをサービス コンテナーとして使用する
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!"

その他のヘルプ