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

Bitbucket パッケージにアクセスするための前提条件

  • ワークスペースが Atlassian 組織にリンクされている必要があります。ワークスペースを Atlassian 組織にリンクする詳細な方法については、サポート ドキュメントをご確認ください。

  • Standard プランまたは Premium プランのいずれかが必要です。この機能は Standard プランおよび Premium プランでのみ利用でき、プランに応じて特定の制限があります。Bitbucket プランをご確認ください。

  • パッケージは、月額プランのお客様のみが作成および使用できます。

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

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

  • リポジトリ権限を既定で継承する、リポジトリにリンクされたイメージ。

  • ソース コード、パイプライン、アーティファクトを 1 か所にまとめることができる、統合された開発者エクスペリエンス。

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

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

  1. API トークンを作成するには、https://id.atlassian.com/manage-profile/security/api-tokens にアクセスして Create API token with scopes を選択します。

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

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

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

API トークンの作成と設定の詳細については、サポート ドキュメントをご確認ください。

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

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

リポジトリ権限

説明

管理

新しいパッケージを作成してリポジトリにリンクし、パッケージがリポジトリの権限を継承できるようにします。

書き込み

コンテナー イメージを 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 など) を認証する必要があります。

たとえば、次のステップは変数 ATLASSIAN_EMAILAPI_TOKEN を使用して認証します (機密性が高いため、API_TOKEN は保護された変数でなければなりません)。

- 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 --user $ATLASSIAN_EMAIL --password-stdin - docker build --tag "$IMAGE_NAME:latest" . - docker image push "$IMAGE_NAME:latest"

既知の制限事項

  • コンテナー イメージとタグは削除できません。また、ストレージを解放するためにイメージによって使用される、ストレージのガベージ コレクションもありません。

  • Bitbucket コンテナー レジストリは、オープン コンテナー イニシアチブと 100% の互換性があるわけではありません。具体的には、直接的な DELETE API 呼び出しとタグ API はサポートされていません。

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

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