Bitbucket is getting a new navigation

We’re rolling out these changes, so the documentation may not match your experience in the Bitbucket Cloud app. Read about the new Bitbucket navigation

Bitbucket Pipelines 用パイプを作成する

A pipe is a custom Docker image for a container, which contains a script to perform a task. There are a bunch of available Pipes, but you can write your own too.

1 つのパイプはいくつかの異なるファイルで構成されます。

  • スクリプト、またはバイナリ、タスクを実行するコード。

  • Dockerfile。スクリプトを実行する Docker コンテナの構築方法を示します。

  • (オプション) メタデータと readme ドキュメント。パイプについて理解するのに役立ちます。

  • (オプション) パイプを簡単に更新できるようにする、いくつかの CI/CD 構成。

これらのファイルは 1 箇所 (通常はパイプ リポジトリ) に格納されます。

パイプを記述する理由

パイプを記述する理由はいくつかあります。

  • パイプラインの複数のステップで同じアクションを実行するため

  • 複数のリポジトリで同様のタスクを実行するため

  • ベンダーの場合、ソフトウェアまたはサービスをパイプラインによって使いやすくするため

  • メインのパイプラインにはない、依存関係を必要とするアクションを実行するため

パイプを作成することで、Pipelines の構成を簡素化し、簡単かつ効率的に再利用できるようになります。

パイプの可能性は無限ですが、すぐに利用できる次のようなパイプを提供しています。

パイプを記述する方法

必要な内容に応じて、シンプルなパイプまたは完全なパイプを作ることができます。これらは同じように動作しますが、追加可能な詳細設定や構成が異なります。

simple

完全なパイプ

すぐに利用を開始

べスト プラクティス

後からの更新は複雑性を高める可能性がある

CI/CD によるバージョニングの自動化

最小限の構成

他のユーザーや自身が将来使用できる、便利なドキュメント

私的利用のみ

マーケットプレイスに追加可能

3 つのファイル:

  • スクリプト

  • 1 つのDockerfile

  • Dockerhub を更新するための 1 つの基本的なパイプライン

前述の 3 つのファイルと次のファイル:

  • 1 つのメタデータ ファイル

  • 1 つの readme

  • 1 つのテスト スクリプト

  • 任意の他のファイル

In this guide, we'll make a simple pipe first, and then show you the steps to make it a complete pipe. We'll build the container and upload it to Dockerhub, so make sure you have an account there (it's free to set up!).

前提条件

  • パイプは、docker ハブのパブリック イメージでのみ機能します。

  • Docker に精通していて、私的使用のためにのみパイプを作成したい場合、必要なすべてのファイルを含む独自の Docker コンテナを作成できます。

ステップ 1 - リポジトリを作成またはインポートする

最初に、ファイルを配置する場所が必要となるため、リポジトリを作成します。

パイプ リポジトリを作成する方法は主に 3 つあります。

  1. 空のリポジトリを作成する (含める情報については後述します)

  2. サンプル リポジトリのいずれか 1 つをインポートする

  3. アトラシアンのジェネレータを使用してローカル リポジトリを作成する (完全なパイプでのみ推奨)

1. Bitbucket で新しいリポジトリを作成する方法

From Bitbucket, select the Create button on the top navigation bar and select Repository.
Bitbucket displays the Create a new repository page. Take some time to review the dialog's contents. With the exception of the Repository type, everything you enter on this page you can later change.

We also have 3 example repositories: a simple pipe repository, and 2 complete pipe repositories (for Bash and Python) which you can use as a reference, or import if you like.

2. リポジトリをインポートする方法

  1. Open up http://bitbucket.org and make sure you are logged in

  2. 上部ナビゲーション バーの [作成] ボタンを選択し、[リポジトリ] を選択し、[新しいリポジトリを作成する] ダイアログ右上隅の [リポジトリをインポートする] リンクを選択します。

  3. サンプル リポジトリの URL を入力します (bash 用の完全なパイプの場合 - https://bitbucket.org/atlassian/demo-pipe-bash/src/main/)

  4. パイプ リポジトリに名前を付けます (例: my first bash pipe)

完全なパイプを作りたい場合、アトラシアンのジェネレータを使用してフレームワークを作成し、ファイルに部分的に入力できます。

3. 完全なパイプ ジェネレータを入手して使用する方法

  1. If you don't have it already, install node.js on your local machine

  2. Our generator runs using Yeoman, so we need to install that, and our pipe generator:

    npm install -g yo generator-bitbucket-pipe
  3. これで準備が整いました。ジェネレータを実行してプロンプトに従います。

    yo bitbucket-pipe

    ジェネレーターは次の内容を確認します。

  • Bitbucket アカウント名

    • リポジトリ (ローカルで生成) の呼び名

    • Dockerhub ユーザー名

    • パイプに設定するタイトル

    • パイプを管理するユーザー

    • パイプで使用したい SVG ロゴが他の場所でホストされている場合、その URL (指定しない場合、既定でリポジトリ内の場所に設定されます)

    • パイプの説明に使用したいメタデータ タグがある場合、その情報 (例: 'Deployment' や 'kubernetes')

ジェネレーターはこの情報を使用して必要なファイルを作成し、情報を可能な限り入力します。

ステップ 2 - スクリプトまたはバイナリを作成する

これはパイプが呼び出されたときに実行される、パイプの主要部分です。パイプ タスクを実行するためのすべてのコマンドとロジックが含まれます。任意のコーディング言語を使用して、スクリプトまたはバイナリ ファイルを作成します。

簡単なスクリプトは次のようになります。

例: pipe.sh

#!/usr/bin/env bash set -e echo 'Hello World'

処理を拡張したい場合、変数を使用できます。

You can use any of the default variables available to the pipeline step that calls the pipe (see this list of default variables), and any pipe variables that are provided when the pipe is called. You can only use user defined variables (account and team, repository, or deployment) if you list them in you pipe.yml (more on this later).

例: pipe.sh

#!/usr/bin/env bash set -e echo 'Hello $BITBUCKET_REPO_OWNER' #when you call the pipe from your pipeline #you can provide variables, for example here: GREETING echo '$GREETING'

You can make some variables mandatory, and some where you use default values you've specified. There are 2 ways to specify a default value, here we'll show defining it in your script, but later on we'll show your the more powerful way, using a pipe.yml file. We show both in our complete pipe for bash example:

必須および推奨変数を使用する pipe.sh の例

完全なリポジトリでは、スクリプトは pipe ディレクトリに保存されます。

以下のスクリプトでは 3 つの変数を使用できますが、2 つの変数に対して適切な既定値を設定することで、内容をシンプルに保つことができます。これにより、パイプのエンド ユーザーは $NAME を提供するだけでパイプを動作させることができます。

トラブルシューティングに役立つデバッグ モードを提供することもおすすめします。この例ではコマンドをターミナルに出力するだけですが、ここにあらゆる種類の詳細を追加して、ユーザーが問題の原因を追跡できるよう支援できます。

# # Required globals: # NAME # # Optional globals: # GREETING (default: "Hello World") # DEBUG (default: "false") source "$(dirname "$0")/common.sh" info "Executing the pipe..." enable_debug() { if [[ "${DEBUG}" == "true" ]]; then info "Enabling debug mode." set -x fi } enable_debug # required parameters NAME=${NAME:?'NAME environment variable missing.'} # default parameters GREETING=${GREETING:="Hello world"} DEBUG=${DEBUG:="false"} run echo "${GREETING} ${NAME}" if [[ "${status}" == "0" ]]; then success "Success!" else fail "Error!" fi

より強力な pipe.yml ファイルを使用する方法については、後ほどこのガイドで解説します。

パイプのエンド ユーザーが使いやすいよう、必須変数は最小限に抑えることをおすすめします。変数に適切な既定値がある場合はスクリプトでそれらを指定すると、エンド ユーザーは必要に応じて変数をオーバーライドできます。

また、ログ出力に色を追加し、外部情報に遷移できるクリック可能なリンクを提供することをおすすめします。

これからスクリプトを実行するため、スクリプトが実行可能である必要があります (したがって、ターミナルで chmod +x pipe.sh を実行することが必要な可能性があります)。アトラシアンのサンプル リポジトリを使用している場合、これはすでに完了しています。

ステップ 3 - Dockerfile を構成する

先ほど作成したスクリプトを実行するには、スクリプトを Docker コンテナーに入れる必要があります。Dockerfile は、この Docker コンテナーを構築する方法の詳細を定義します。最低でも、FROMCOPY、および ENTRYPOINT の値が必要です。

FROM、COPY、および ENTRYPOINT の詳細情報

コマンド

詳細とヒント

FROM <imagename>

Docker コンテナのベースとして使用するイメージを示します。

例: Alpine Linux バージョン 3.8 を使用するには、"alpine:3.8" を使用します。

ヒント:

  • 正式な Docker イメージを使用するようにします。

  • 可能な場合は軽量なイメージを使用するようにします。これらは、しばしば "alpine" または "slim" バージョンと呼ばれます。これらはサイズが小さく、素早くダウンロードできるため、パイプを高速化します。

  • latest タグを使用するのではなくイメージ バージョンを指定して、イメージの変更でパイプが壊れないようにします。

For more information on working with images see Docker's best practices documentation.

COPY <source> <destination>

スクリプト (またはバイナリ) をコンテナにコピーします。

例: pipe ディレクトリの内容をコンテナのルートにコピーするには、次のようにします。 

COPY pipe/

ヒント:

パイプのパフォーマンスを確保するため、パイプで実行する必要があるファイルのみをコピーします。

ENTRYPOINT [“<path to script/binary”]

コンテナが作成されたときに実行するスクリプトまたはバイナリへのパス。

例: コンテナーのルートにコピーしたばかりのスクリプト pipe.sh を実行するには、次のようにします。

ENTRYPOINT [“/pipe.sh”]

ヒント: パスは、元の pipe リポジトリではなくコンテナ内での場所です

The complete pipe for bash example contains a Dockerfile already in it's root directory:

FROM alpine:3.8 RUN apk update && apk add bash COPY pipe / ENTRYPOINT ["/pipe.sh"]

この場合、コンテナは次のことを実行します。

  • use an Alpine Linux 3.8 image

  • 更新コマンドを実行し、コンテナに bash をインストールする

  • pipe ディレクトリの内容をルート ディレクトリにコピーする

  • pipe.sh の実行を開始する

これらをニーズに合わせて編集できます。Alpine Linux 3.9 を使用したい場合、FROM alpine:3.9 を読み込むように FROM を変更するだけです。

Linux にさらにパッケージをインストールしたい場合、RUN コマンドに追加します。その前に、それらのパッケージをインストール済みのイメージがあるかどうかを Dockerhub で確認してください。これにより、貴重な時間を節約できます。

希望どおりのスクリプトとコンテナを作成するために、複数回の反復作業が必要になることがあります。これを考慮し、Docker をローカル マシンにインストールすることをおすすめします。こうすることで、ビルド時間を使用せずにパイプ コンテナのビルドと実行をテストできます。 

ローカルでの docker の使用についての詳細

Docker をインストールしたら、イメージをビルドする必要があります。

docker build -t bitbucketpipelines/demo-pipe-bash:0.1.0 .

ここで:

  • -t: 指定された名前、イメージ名、およびタグで、アカウントのイメージを作成します。

  • .: Docker で、現在のディレクトリを Docker ビルドのルートとして使用するように指定します (現在のディレクトリで Dockerfile という名前のファイルを自動的に検索します)。

次に、新しく構築されたイメージを実行し、-e を使用して変数を渡すことができます。

docker run \ -e NAME="first last" \ -e DEBUG="true" \ -v $(pwd):$(pwd) \ -w $(pwd) \ bitbucketpipelines/demo-pipe-bash:0.1.0

Learn more about running Docker locally.

ステップ 4 - パイプ コンテナを Dockerhub に更新するための基本的なパイプラインを作成する

シンプルなパイプを作成する最後のステップは、コンテナを構築し、それを Dockerhub にアップロードすることです。

必ずしもパイプラインを使用する必要はありませんが、これによって将来の更新が容易になり、バージョン番号が自動的に更新されるため、最新バージョンを使用していることをすばやく確認できます。

The example bitbucket-pipelines.yml below builds and pushes a new version of your container to Dockerhub whenever you commit. So if you update which image you want to use for your Docker container, or make some changes to your script, this will automatically make sure the version on Dockerhub is up to date. Make sure you have a dockerhub account and then all you need to do is add 2 variables to your pipe repositoryDOCKERHUB_USERNAME and  DOCKERHUB_PASSWORD, and enable pipelines.

例: bitbucket-pipelines.yml

image: name: atlassian/default-image:2 pipelines: default: - step: name: Build and Push script: # Build and push image - VERSION="1.$BITBUCKET_BUILD_NUMBER" - echo ${DOCKERHUB_PASSWORD} | docker login --username "$DOCKERHUB_USERNAME" --password-stdin - IMAGE="$DOCKERHUB_USERNAME/$BITBUCKET_REPO_SLUG" - docker build -t ${IMAGE}:${VERSION} . - docker tag ${IMAGE}:${VERSION} ${IMAGE}:latest - docker push ${IMAGE} # Push tags - git tag -a "${VERSION}" -m "Tagging for release ${VERSION}" - git push origin ${VERSION} services: - docker

これでシンプルなパイプができました。

シンプルなパイプに必要な手順は以上です。これで、次の構文を使用して、ステップでパイプを参照できるようになりました。

pipe: docker://<DockerAccountName>/<ImageName>:<version>

パイプ作成の次のステップは、長期的な利便性を高め、他のユーザーがパイプを使用しやすくするために設計されています。正式にサポートされるパイプを作りたいユーザーの場合、このステップが必要です。

完全なパイプを作成する場合は、以下もセットアップする必要があります。

  • パイプのメタデータ -パイプの詳細 (保守担当者の名前など)

  • readme - パイプの使用方法の詳細 (必要な変数など)

  • 自動テスト - 変更によって問題が発生していないことの確認

  • セマンティック バージョニング - 使用するパイプのバージョンを明確にする

  • デバッグ ロギング - 何か問題が生じた場合にエンド ユーザーが容易にトラブルシューティングできるようにする

Don't worry, this is already configured in our example repos (Bash and Python), so take a peek at them and we'll guide you through the next steps!

ステップ 5 - pipe.yml (メタデータ ファイル) を作成する

pipe.yml ファイルは、パイプを分類するための便利な情報を提供します。

キーワード

説明

name

パイプに対して表示する名前またはタイトル。

image

account/repo:tag の形式で Dockerhub 上で作成した、パイプの Docker イメージ。

category

パイプのカテゴリ。次のいずれかになります。

  • Alerting

  • Artifact management

  • Code quality

  • Deployment

  • Feature flagging

  • Monitoring

  • Notifications

  • Security

  • Testing

  • Utilities

  • Workflow automation

description

パイプの実行内容を説明する簡単な要約。

repository

Bitbucket pipe repository absolute URL. Example: atlassian/demo-pipe-bash

maintainer

name、website、email を含むオブジェクト。

  • Name は、メンテナンスの担当会社の名前です。

  • Website は、メンテナンスの担当会社の Web サイトです。

  • Email は、パイプのメンテナンスを行うチームまたは担当者のメール アドレスです (オプション)

vendor

name、website、email を含むオブジェクト。ベンダー パイプの場合、このフィールドの入力は必須です。

  • Name はベンダー企業の名前です。

  • Website はベンダー企業の Web サイトです。

  • Email は、ベンダー企業、チーム、または担当者のメール アドレスです (オプション)。

tags

パイプの検索と分類に役立つキーワード。オプションとして、パイプが実行する関数のタイプ (deploy、notify、test)、アプリ名、会社名、名前、連携している特定のツールなどを含めることができます。

variables (オプション)

namedefault を含むオブジェクト。

  • name - 変数の名前。

  • default - the default value or the variable to pull from the pipeline’s configured environment variables.

pipe.yml ファイルは次のように表示される可能性もあります。

pipe.yml の例

name: My demo pipe image: bitbucketpipelines/demo-pipe-bash:0.1.0 category: Utilities description: Showing how easy is to make pipes for Bitbucket Pipelines. variables: - name: ENV_NAME default: ‘Production’ - name: SECRET_KEY default: ‘${SECRET_KEY}’ # this is pulling the value of $SECRET_KEY from the pipeline - name: COMMIT_HASH default: "$BITBUCKET_COMMIT" repository: https://bitbucket.org/atlassian/demo-pipe-bash maintainer: name: Atlassian website: https://www.atlassian.com/ja/ email: contact@atlassian.com vendor: name: Demo website: https://example.com/ email: contact@example.com tags: - helloworld - example

ステップ 6 - README.md (readme ファイル) を作成する

ユーザーは readme を使用して、パイプの使用方法を確認できます。これは Bitbucket で表示されるため、マークダウンで特定の形式で記述し、見出しを順番に並べる必要があります。

# Bitbucket Pipelines Pipe: <pipe_name> <pipe_short_description> ## YAML Definition Add the following snippet to the script section of your `bitbucket-pipelines.yml` file: <pipe_code_snippet> ## Variables <pipe_variables_table> ## Details <pipe_long_description> ## Prerequisites <pipe_prerequisites> ## Examples <pipe_code_examples> ## Support <pipe_support>

セクション

説明

<pipe_name>

パイプ名

<pipe_short_description>

パイプの実行内容の要約 - 次の形式を使用することをお勧めします。"[宛先 | ベンダー | スイート] (への) [アクションを表す動詞]" 例: "Dockerhub へのデプロイ" または "Opsgenie への通知"

<pipe_code_snippet>

ユーザーがパイプを使用するためにパイプラインにコピーして貼り付ける必要があるもの

<pipe_variable_table>

パイプが必要とする変数の一覧。必須か任意かを明確にします。

<pipe_long_description>

使用方法、構成、セットアップなどの詳細な説明。

<pipe_prerequisites>

パイプを使用する前に必要となるもの。例: インストール済みのパッケージ、サードパーティ システムのアカウント。

<pipe_code_examples>

サンプル変数を持つコード スニペット。少なくとも以下を網羅することをおすすめします。

  • 基本的なパイプ: 必須変数のみ。

  • 高度なパイプ: すべての変数。

<pipe_support>

Give details on how people can contact you for questions and support.
As a backup you can also reference contacting our community, so that if other have the same question, they can find the answer easily, but this may not give as good an experience to your pipe user!

次の readme の例をご確認ください。

Here's the readme from our slack notification pipe.

Bitbucket Pipelines Pipe: Slack Notify

Sends a notification to Slack.

YAML Definition

Add the following snippet to the script section of your bitbucket-pipelines.yml file:

- pipe: atlassian/slack-notify:0.2.1 variables: WEBHOOK_URL: '<string>' MESSAGE: '<string>' # DEBUG: '<boolean>' # Optional.

Variables

変数

用途

WEBHOOK_URL (*)

Incoming Webhook URL. It is recommended to use a secure repository variable.

MESSAGE (*)

Notification message.

DEBUG

Turn on extra debug information.Default: false.

(*) = required variable.

前提条件

To send notifications to Slack, you need an Incoming Webhook URL. You can follow the instructions here to create one.

Basic example:

script: - pipe: atlassian/slack-notify:0.2.1 variables: WEBHOOK_URL: $WEBHOOK_URL MESSAGE: 'Hello, world!'

サポート

If you’d like help with this pipe, or you have an issue or feature request, let us know on Community.

If you’re reporting an issue, please include:

  • パイプのバージョン

  • 関連するログとエラー メッセージ

  • 再現手順

License

Copyright (c) 2018 Atlassian and others. Apache 2.0 licensed, see LICENSE.txt file.

ステップ 7 - テストを作成する

パイプに自動統合テストを追加することをおすすめします。こうすることで、一般に公開する前に、期待どおりに動作していることを確認できます。たとえば、予期しない変数を処理する方法や、必要なサードパーティ サービスに正常に接続できるかどうかをテストできます。正式にサポートされる予定のパイプは、定期的にテストすることが非常に重要です。

テストの例

In our bash demo pipe, we use bats (Bash Automated Testing System) to run a basic test to make sure that we can run a Docker container with a NAME variable passed to it.

例: test.bats

#!/usr/bin/env bats setup() { DOCKER_IMAGE=${DOCKER_IMAGE:="test/demo-pipe-bash"} echo "Building image..." run docker build -t ${DOCKER_IMAGE} . } teardown() { echo "Teardown happens after each test." } @test "Dummy test" { run docker run \ -e NAME="baz" \ -v $(pwd):$(pwd) \ -w $(pwd) \ ${DOCKER_IMAGE} echo "Status: $status" echo "Output: $output" [ "$status" -eq 0 ] }

ステップ 8 - パイプをデバッグしやすくする

スクリプトには、パイプで行われていることの追加情報を出力するデバッグ モードを追記することをおすすめします。

また、ログに表示されるリンクをクリックできるようにし、出力では色を使用して重要な情報を強調表示することをおすすめします。

How you do this will depend on the language you are using to write your script, but you can see an example of this in the common.sh file in our bash demo repo.

ステップ 9 - テストと更新を自動化するよう CI/CD をセットアップする

また、CI/CD を以下に使用することをお勧めします。

  • 自動テスト

  • Dockerhub (または選択したサイト) への自動アップロード

  • 以下のバージョン番号を自動的に更新

    • 変更履歴

    • readme

    • メタデータ

bitbucket-pipelines.yml ファイルを構成したら、パイプラインを有効化できます。リポジトリの [設定] > [Pipelines] セクション > [設定] > [パイプラインの有効化] でパイプラインを有効にできます。

CI/CD ワークフローの例

アトラシアンでは、すべてのパイプ開発作業をフィーチャー ブランチで実行するワークフローを推奨しています。フィーチャー ブランチの任意のコミットによってテストが実行されるようにパイプラインをセットアップします。

テストに合格したら、自信を持ってそれを main ブランチにマージできます。このマージは、パイプのバージョンを更新する main ブランチ固有のパイプラインをトリガーして (これを行う方法については次のステップで説明します)、イメージを Docker にアップロードします。

Here's how we setup those pipelines in our bash demo repo:

例: bitbucket-pipelines.yml

image: name: atlassian/default-image:2 test: &test step: name: Test image: atlassian/default-image:2 script: - npm install -g bats - bats test/test.bats services: - docker push: &push step: name: Push and Tag image: python:3.6.7 script: - pip install semversioner==0.6.16 - ./ci-scripts/bump-version.sh - ./ci-scripts/docker-release.sh bitbucketpipelines/$BITBUCKET_REPO_SLUG - ./ci-scripts/git-push.sh services: - docker pipelines: default: - <<: *test branches: main: - <<: *test - <<: *push

ステップ 10 - セマンティック バージョニングをセットアップする

パイプにセマンティック バージョニング (semver) を使用することをお勧めします。これにより、どのバージョンが最新であるか、どのバージョンを使用すべきか、更新によって問題が発生する可能性があるかどうかが明確になります。バージョンは 3 つの部分に分かれます: <major>.<minor>.<patch>。例: 6.5.2

行った変更に応じてバージョン番号を増やします。次のように更新します。

  • major: 既存のユーザーによる使用に問題が生じる可能性のある変更を加えた場合 (例: 必須変数の名前の変更)

  • minor: 下位互換性のある方法で機能を追加した場合

  • patch: 下位互換性のあるバグ修正の場合

There are a few places you would want to update when you change the version, so to simplify that there is a tool called semversioner (https://pypi.org/project/semversioner/). This will generate a new entry in your changelog, update the version number, and commit back to the repository.

semversioner の使用についての詳細

1. ローカル マシンに semversioner をインストールします。

pip install semversioner

2. 開発中は、main に統合する変更には 1 つ以上のチェンジセットファイルが必要です。semversioner を使用してチェンジセットを生成します。

semversioner add-change --type patch --description "Fix security vulnerability."

3. コードを使用して、.change/next-release/ フォルダで生成されたチェンジセット ファイルをコミットします。次に例を示します。

git add .

git commit -m "BP-234 FIX security issue with authentication"

git push origin

4. Atlassian のデモ リポジトリをインポートした場合は、これで完了です。main にマージすると、それ以降の操作は Bitbucket Pipelines によって実行されます。

  • チェンジセット タイプ majorminorpatch に基づいて新しいバージョン番号を生成します。

  • この特定のバージョンのすべての変更を含む新しいファイルを .changes ディレクトリに生成します。

  • (Re)generate the CHANGELOG.md file.

  • README.md の例と pipe.yml メタデータのバージョン番号を上げます。

  • コミットしてリポジトリにプッシュ バックします。

  • 新しいバージョン番号を使用してコミットにタグを付けます。

We achieve this by the pipeline calling 3 scripts that use semversioner and the variables available to the pipe repo. Have a look at our example CI scripts.

ステップ 11 - 新しい完全なパイプを使用する

パイプのシンプルなバージョンと同様、最後のステップはコンテナを構築して Dockerhub にプッシュすることです。 

他のリポジトリでこのパイプを参照する方法は 2 とおりあります。bitbucket-pipelines.yml ファイルでは、次の操作を実行できます。

  1. docker イメージを直接参照する 
    pipe: docker://acct/repo:tag (ここで acct/repo は Dockerhub のアカウントとリポジトリ) 注: Docker のパブリック イメージを参照する際は、必ず docker:// を指定する必要があります。

  2. Bitbucket でホストされているパイプ リポジトリを参照する
    pipe: <BB_acct>/repo:tag (ここで、BB_acct/repo は自分の Bitbucket アカウントとパイプ リポジトリです)
    この参照バージョンは pipe.yml ファイルでイメージの取得先を見つけます。

高度なヒント

  • Docker イメージをホストする別のサービスがある場合は Dockerhubを使用する必要はありませんが、イメージは公開されている必要があります

  • If you install Docker to your local machine you can test out everything works well, before uploading.

  • 重要な変数がある場合は、それらの変数が提供され、有効であることをスクリプトでテストするようにします。

  • 必須変数は最小限に抑え、可能であれば既定値を指定します。

  • 予期せぬ事態が発生した場合に備えて、迅速かつ効率的にパイプ サポートを提供できるプロセスを用意しておきます。フィードバックをすばやく受け取り、パイプ ユーザーにより良いエクスペリエンスを提供できます。

  • 他のパイプと共有したいファイル、またはメイン パイプラインで使用するファイルを作成する場合、そのファイルの権限を編集する必要があります。これを行う一般的な方法として、パイプ スクリプトの先頭に umask 000 を配置します。1 つのファイルの値のみを変更したい場合、chown または chmod コマンドを使用することもできます。

  • Check out more advanced pipe writing techniques, including the best way to quote things, and passing array variables.

公式パイプへの参加

パイプを登録してアトラシアンの公式リストへの追加を依頼できます。その場合、完全なパイプの作成方法に従っていることをご確認ください。

Have a look at the full details of how to contribute a pipe.

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

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