コンテナーイメージの公開
Docker イメージがあり、次のコマンドを使用して、新しく作成したコンテナーレジストリにそれを公開するとします。
同じイメージバージョンのイメージを公開することは許可されていないことに注意してください。サーバーは 409 HTTP 応答を返します。
Docker コマンドラインツールを使用してイメージを公開する
コンテナーレジストリにログインします。
docker login mycompany.registry.jetbrains.spaceここmycompany.registry.jetbrains.space
はレジストリ URL です(
mycompany
は Space の会社の名前です)。URL がわからない場合は、パッケージページで特定のコンテナーレジストリの URL をコピーできます。
資格情報を求められたら、Space ユーザー名とパスワード (代わりに永久トークンを使用することをお勧めします)、またはサービスアカウントのクライアント ID とクライアントシークレットを指定します。
イメージがまだ作成されていない場合は、
docker build
を使用してビルドします。コンテナーレジストリのイメージにタグを付けます。
docker tag myimage mycompany.registry.jetbrains.space/p/projectkey/mydocker/myimageここmyimage
はイメージの名前です。mycompany.registry.jetbrains.space/p/projectkey/mydocker/
は、コンテナーレジストリの名前空間です。これは、特定のレジストリのページのパッケージにあります。
イメージをレジストリに公開します。
docker push mycompany.registry.jetbrains.space/p/projectkey/mydocker/myimage
JetBrains TeamCity からイメージを公開
前提条件: Docker イメージを作成する有効なビルド構成が TeamCity にあること。あなたのタスクは、このイメージを Space Packages レジストリに公開することです。
Space で、TeamCity から Space への接続に使用するアプリケーションアカウントを作成します。
TeamCity インスタンスを、イメージを公開するパッケージレジストリに接続します。TeamCity の場合:
プロジェクトのプロパティで接続 | 接続の追加を選択
接続設定で、Docker レジストリの URL (
mycompany.registry.jetbrains.space
のようになります) とアプリケーションアカウントの資格情報 (クライアント ID と永久トークン) を指定します。
Docker サポートを TeamCity ビルド構成に追加します。ビルド構成設定で、機能を構築する | ビルド機能を追加を選択します。
ビルド機能の追加ウィンドウで:
Docker サポートを選択
ビルド前に Docker レジストリにログインしますで、手順 1 で作成した接続を選択します。
Docker サポートを追加すると、TeamCity はビルド前に Space コンテナーレジストリにログインします。さらに、ビルドには、作成された Docker イメージに関する情報を含む別のタブが表示されます。
対応する Docker ビルドステップをビルド構成に追加します。例: 以下を実行するステップ:
docker push mycompany.registry.jetbrains.space/p/projectkey/mydocker/myimage:%build.number%
Space Automation からイメージを公開する
Space Automation は、Docker イメージの構築と公開を容易にする特別な DSL を提供します。詳細
関連ページ:

コンテナーレジストリを作成する
プロジェクトに移動するレジストリを作成する場所。プロジェクトのサイドバーで、パッケージを選択します。パッケージページで、新規リポジトリをクリックします。新しいパッケージリポジトリウィンドウで、リポジトリ設定を指定します。タイプ: コンテナーレジストリを選択します。名前と説明: レジストリ名 (一意の識別子である必要があります) と説明を指定します。アクセス: 認証されていないユーザーがリポジトリから読み取れるようにする場合は、Public を選択します。それ以外の場合は、Private を選択します。...

パッケージ内のアクセスと認可
プライベートおよびパブリックリポジトリ:パッケージリポジトリは特定のプロジェクト内でのみ作成できます。つまり、リポジトリはプロジェクト全体のエンティティです。ユーザー権限は、プロジェクト内のユーザーのロールとリポジトリのタイプ (プライベートまたはパブリック) によって異なります。さらに詳細に: 許可されたユーザーのみがプライベートリポジトリにアクセスできます。アクセスはパッケージリポジトリ権限グループによって管理されます。デフォルトでは: プロジェクトメンバーには、読み取り、書き込み、作成、削除...