パッケージの使用を開始する

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 コマンドが完了してからイメージがページに表示されるまでに、多少の遅延が生じる場合があります。

  • To view the images within the workspace, select Packages on the left sidebar. This opens the Packages page which lists all the images within the workspace.

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

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

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

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

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

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.

 

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

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