パッケージの使用を開始する
Bitbucket パッケージにアクセスするための前提条件
ワークスペースが Atlassian 組織にリンクされている必要があります。ワークスペースを Atlassian 組織にリンクする詳細な方法は、サポート ドキュメントをご確認ください。
Standard プランまたは Premium プランのいずれかが必要です。この機能は Standard プランおよび Premium プランでのみ利用でき、プランに応じて特定の制限があります。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 トークンが必要です。
API トークンを作成するには、https://id.atlassian.com/manage-profile/security/api-tokens にアクセスして
Create API token with scopesを選択します。トークンの名前と有効期限を入力します。
必要なスコープ
read:package:bitbucketを選択します。トークンを使用してレジストリにイメージをプッシュできるようにする場合は、
write:package:bitbucketスコープを選択することもできます。
API トークンの作成とセットアップに関する詳細は、サポート ドキュメントをご確認ください。
コンテナー レジストリを使用する
コンテナー レジストリは、個々のリポジトリにリンクされたイメージを持つワークスペース内で動作します。イメージの権限は、以下で説明しているように、リポジトリ ロール (管理者、書き込み、読み取り) と一致しています。
リポジトリ権限 | 説明 |
|---|---|
管理 | リポジトリにリンクされた新しいパッケージを作成して、パッケージがリポジトリの権限を継承できるようにします。コンテナー イメージの削除も行えます。 |
書き込み | コンテナー イメージを Bitbucket パッケージ レジストリにプッシュします。コンテナー イメージ タグの削除も行えます。 |
読み取り | Bitbucket パッケージ レジストリにプッシュされたコンテナー イメージをプルします。 |
パッケージを作成する
レジストリに対してコンテナー イメージをプッシュ/プルする前に、まず Bitbucket のコンテナー イメージを表すパッケージを作成する必要があります。
上部のナビゲーション バーで [作成] を選択し、[作成] ドロップダウン メニューを開きます。
[作成] ドロップダウンから [パッケージ] を選択します。
パッケージの名前を [パッケージ名] フィールドに入力します。
[Repository to link to (リンクするリポジトリ)] ドロップダウンを選択し、パッケージをリンクするリポジトリを選択します。注意: パッケージはリポジトリの権限を継承し、ユーザーにはパッケージにアクセスするための同じ権限が付与されます。
[送信] を選択し、パッケージを作成します。
認証
コンテナー レジストリへのプッシュとコンテナー レジストリからのプルを行うには、アトラシアン 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_EMAIL と API_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 --username $ATLASSIAN_EMAIL --password-stdin
- docker build --tag "$IMAGE_NAME:latest" .
- docker image push "$IMAGE_NAME:latest"既知の制限事項
コンテナー レジストリでは、各レイヤーに 32 GB のサイズ制限があります。
コンテナー レジストリには、アップロードに対して 7 分のタイムアウト制限があります。
Bitbucket コンテナー レジストリは、オープン コンテナー イニシアチブと 100% の互換性があるわけではありません。具体的には、直接的な
DELETEAPI 呼び出しとタグ API がサポート対象外です。
この内容はお役に立ちましたか?