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 パッケージにアクセスするための前提条件

What are packages?

Packages are a built-in container registry that brings artifact management directly into Bitbucket Cloud workflows. Development teams can publish, manage, and consume container images, which are linked to specific repositories.

Bitbucket コンテナーのレジストリは以下を提供します。

  • Bitbucket Cloud に直接統合されているコンテナー イメージ用のワークスペースレベルの名前空間。

  • Repository-linked images that inherit repository permissions (Admin, Write, Read) by default.

  • A unified-developer experience, where source code, pipelines, and artifacts can live together in one place.

アトラシアン API トークンを作成する

パッケージを認証するには、特定のスコープが設定されているアトラシアン API トークンが必要です。

  1. To create an API token, visit https://id.atlassian.com/manage-profile/security/api-tokens and select Create API token with scopes.

  2. トークンの名前と有効期限を入力します。

  3. 必要なスコープ read:package:bitbucket を選択します。

  4. トークンを使用してレジストリにイメージをプッシュできるようにする場合は、write:package:bitbucket スコープを選択することもできます。

Check out our support documentation for more information on creating and setting up API tokens.

コンテナー レジストリを使用する

コンテナー レジストリは、個々のリポジトリにリンクされたイメージを持つワークスペース内で動作します。イメージの権限は、以下で説明しているように、リポジトリ ロール (管理者、書き込み、読み取り) と一致しています。

リポジトリ権限

説明

管理

リポジトリにリンクされた新しいパッケージを作成して、パッケージがリポジトリの権限を継承できるようにします。コンテナー イメージの削除も行えます。

書き込み

コンテナー イメージを Bitbucket パッケージ レジストリにプッシュします。コンテナー イメージ タグの削除も行えます。

読み取り

Bitbucket パッケージ レジストリにプッシュされたコンテナー イメージをプルします。

パッケージを作成する

レジストリに対してコンテナー イメージをプッシュ/プルする前に、まず Bitbucket のコンテナー イメージを表すパッケージを作成する必要があります。

  1. 上部のナビゲーション バーで [作成] を選択し、[作成] ドロップダウン メニューを開きます。

  2. [作成] ドロップダウンから [パッケージ] を選択します。

  3. パッケージの名前を [パッケージ名] フィールドに入力します。

  4. [Repository to link to (リンクするリポジトリ)] ドロップダウンを選択し、パッケージをリンクするリポジトリを選択します。注意: パッケージはリポジトリの権限を継承し、ユーザーにはパッケージにアクセスするための同じ権限が付与されます。

  5. [送信] を選択し、パッケージを作成します。

認証

コンテナー レジストリへのプッシュとコンテナー レジストリからのプルを行うには、アトラシアン API トークンでクライアントを認証する必要があります。Docker CLI を使用している場合は、既定のコンテンツをユーザー名とアトラシアンのメール アドレスに置き換える次のコマンドを使って、認証情報を構成します。

docker login --username <your_atlassian_account_email_address> crg.apkg.io

パスワードの入力を求められたら、API トークンを入力します。認証されると、お使いのマシンに認証情報が保存され、以降のすべてのコンテナー レジストリ操作に使用されます。

コンテナー イメージをレジストリにプッシュする

コンテナー イメージをプッシュするには、イメージ参照にコンテナー レジストリのホスト名 (crg.apkg.io) とプッシュ先の Bitbucket ワークスペースのスラッグの両方を含める必要があります。次の例は、docker CLI を使用して、my-image という名前のイメージをビルドしてワークスペース my-workspace にプッシュする方法を示しています。次の例も、Dockerfile と同じディレクトリ内にいることを想定しています。

docker build --tag crg.apkg.io/my-workspace/my-image:latest . docker push crg.apkg.io/my-workspace/my-image:latest

コンテナー イメージをプルする

次の例は、docker pull を使用してコンテナー イメージをプルする方法を示しています。上の例と同じイメージ名とワークスペースを使用します。

docker pull crg.apkg.io/my-workspace/my-image:latest

コンテナー イメージを表示する

コンテナー レジストリ内のイメージは、ワークスペース、プロジェクト、およびリポジトリから表示できます。ワークスペース、プロジェクト、またはリポジトリにプッシュされたイメージのリストが表示されます。

docker push コマンドが完了してからイメージがページに表示されるまでに、多少の遅延が生じる場合があります。

  • ワークスペース内のイメージを表示するには、上部のナビゲーション バーで [パッケージ] を選択します。これにより、ワークスペース内のすべてのイメージをリストした [パッケージ] ページが表示されます。

  • プロジェクト内のイメージを表示するには、イメージのリストを表示したいプロジェクト内の左側のサイドバーで [パッケージ] を選択します。

  • リポジトリ内のイメージを表示するには、イメージのリストを表示したいリポジトリ内の左側のサイドバーで [パッケージ] を選択します。

イメージの詳細を表示する

  • イメージを表示する: パッケージのリストからイメージ名を選択すると、そのイメージの詳細が表示されます。

  • タグを表示する: タグ名を選択すると、そのイメージに関連付けられているタグに固有の詳細が表示されます。

Pipelines でコンテナー レジストリを使用する

Bitbucket Pipelines からイメージをプッシュするには、プッシュを実行するパイプライン ステップ内で、コンテナー クライアント (Docker など) を認証する必要があります。

As an example, the following step authenticates using ATLASSIAN_EMAIL and API_TOKEN variables (API_TOKEN should be a secured variable due to its sensitive nature):

- step: name: Build and push Docker image services: - docker script: - export IMAGE_NAME="crg.apkg.io/my-workspace/my-image" - echo $API_TOKEN | docker login crg.apkg.io --username $ATLASSIAN_EMAIL --password-stdin - docker build --tag "$IMAGE_NAME:latest" . - docker image push "$IMAGE_NAME:latest"

既知の制限事項

  • コンテナー レジストリでは、各レイヤーに 32 GB のサイズ制限があります。

  • コンテナー レジストリには、アップロードに対して 7 分のタイムアウト制限があります。

  • Bitbucket container registry is not 100% compatible with the Open Container Initiative, specifically we don’t support direct DELETE API calls and the tags APIs.

 

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

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