Docker イメージ オプション

Bitbucket Pipelines runs most builds in Docker containers (excluding builds on the Linux shell, macOS, and Windows runners). The image options allow you to use custom Docker images as build environments. Most of these options relate to pulling images from private Docker registries.

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 の自社ホスト ランナー上。

You can use the default image (atlassian/default-image:latest) provided by Bitbucket or define a custom image. You can specify any public or private Docker image that isn't hosted on a private network. The image used can be set at the global level, and overridden for individual steps.

image オプションは、公開のイメージまたは非公開のイメージを指定するために使用できます。一般にアクセス可能な Docker イメージの場合は、次のような単一行のオプションとして image を使用できます。

image: atlassian/default-image:latest

非公開イメージの場合は、次のような image オプションのブロック バージョンをご利用ください。

image: name: us-east1-docker.pkg.dev/my-project/my-repo/test-image:latest username: $DOCKER_REGISTRY_USERNAME password: $DOCKER_REGISTRY_PASSWORD

イメージの使用と作成に関する詳細は、「Docker イメージをビルド環境として使用する」をご参照ください。

Propertyimage

必須 — いいえ

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

Default valueatlassian/default-image:latest (For details, see Use Docker images as build environments — Default build environment)

Allowed parent propertiesservices, step, or the YAML root (image can be a top-level property)

許可されている子プロパティnameusernamepasswordawsrun-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 イメージをビルド環境として使用する — 非公開ビルド イメージを使用する」をご参照ください。

Propertyname

必須 — いいえ

データ タイプ — 文字列

指定可能な親プロパティ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 イメージをビルド環境として使用する — 非公開ビルド イメージを使用する」をご参照ください。

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

Propertyusername

必須 — いいえ

データ タイプ — 文字列

指定可能な親プロパティ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 イメージをビルド環境として使用する — 非公開ビルド イメージを使用する」をご参照ください。

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

Propertypassword

必須 — いいえ

データ タイプ — 文字列

指定可能な親プロパティ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 は、イメージですでに定義されているユーザーであり、有効なホーム ディレクトリを持っている必要があります。

Propertyrun-as-user

必須 — いいえ

データ タイプ — 整数

指定可能な値 — イメージ上の任意のユーザーの UID

Default value0 (root user)

指定可能な親プロパティ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

The image aws properties allow pipelines to use private images hosted in an Amazon Elastic Container Registry (AWS ECR). The aws property supports two authentication methods:

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

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

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

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

Propertyaws

必須 — いいえ

データ タイプ — 改行で区切られたキーと値のペアのブロック (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: 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: 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) でホストされる非公開イメージ」をご参照ください。

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

Propertyaccess-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) でホストされる非公開イメージ」をご参照ください。

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

Propertysecret-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 イメージを使用する」をご参照ください。

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

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。