個人アカウントまたは Organization にスコープ指定されたパッケージを公開すると、既定では、このパッケージはリポジトリにリンクされません。 パッケージをリポジトリに接続すると、パッケージのランディング ページには、リポジトリから README などの情報やリンクが表示されるようになります。 パッケージのアクセス許可をリンク先のリポジトリから継承させることもできます。 詳しくは、「パッケージのアクセス制御と可視性の設定」をご覧ください。
GitHub
でリポジトリをユーザーにスコープ指定されたパッケージに接続する
-
GitHub で、個人アカウントのメイン ページに移動します。
-
GitHub の右上隅にあるプロフィール画像をクリックしてから、[Your profile] をクリックします。
![@octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [自分のプロファイル] が濃いオレンジ色の枠線で囲まれています。](/assets/cb-13593/images/help/profile/profile-button-avatar-menu-global-nav-update.png)
-
プロファイル ページのヘッダーで、[ Packages] タブをクリックします。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのバージョンで、 [リポジトリの接続] をクリックします。
-
パッケージにリンクするリポジトリを選び、 [リポジトリの接続] をクリックします。
GitHub
でリポジトリを Organization にスコープ指定されたパッケージに接続する
-
GitHubで、Organizationのメインページにアクセスしてください。
-
Organization 名の下にある [ Packages] タブをクリックします。
![@octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-82633/images/help/package-registry/org-tab-for-packages-with-overview-tab.png)
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのバージョンで、 [リポジトリの接続] をクリックします。
-
パッケージにリンクするリポジトリを選び、 [リポジトリの接続] をクリックします。
コマンドラインを使ってリポジトリをコンテナイメージに接続する
メモ
現在、Container registry は GitHub Enterprise Server に対して パブリック プレビュー 段階であり、変更される可能性があります。
Container registry を使うには、GitHub Packages と Subdomain Isolation の両方を有効にする必要があります。 詳しくは、「コンテナレジストリの利用」をご覧ください。
-
Dockerfile で、次の行を追加します。このとき、
HOSTNAME、OWNERおよびREPOはご自分のものに置き換えます。LABEL org.opencontainers.image.source=https://HOSTNAME/OWNER/REPOたとえば、ユーザー
octocatでmy-repoを所有し、GitHub ホスト名がgithub.companyname.comである場合、 次の行を Dockerfile に追加します。LABEL org.opencontainers.image.source=https://containers.github.companyname.com/octocat/my-repo詳細については、Docker の公式ドキュメントの「LABEL」と
opencontainers/image-specリポジトリの「定義済みの注釈キー」を参照してください。 -
あなたのコンテナイメージを構築します。 この例では、現在のディレクトリ内の Dockerfile からイメージをビルドして、イメージ名
hello_dockerを割り当てます。docker build -t hello_docker . -
必要に応じて、先ほど作成した Docker イメージの詳細を確認します。
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > hello_docker latest 142e665b1faa 5 seconds ago 125MB > redis latest afb5e116cac0 3 months ago 111MB > alpine latest a6215f271958 5 months ago 5.29MB -
Docker イメージに名前とホスティング先を割り当てます。
docker tag IMAGE_NAME containers.HOSTNAME/NAMESPACE/NEW_IMAGE_NAME:TAGNAMESPACEを、パッケージのスコープ指定先にしたい個人アカウントまたは Organization の名前に置き換えます。次に例を示します。
docker tag 38f737a91f39 containers.github.companyname.com/octocat/hello_docker:latest -
まだContainer registryで認証を受けていなければ、受けてください。 詳しくは、「コンテナレジストリの利用」をご覧ください。
$ echo $CR_PAT | docker login containers.HOSTNAME -u USERNAME --password-stdin > Login Succeeded -
コンテナイメージをContainer registryにプッシュしてください。
docker push containers.HOSTNAME/NAMESPACE/IMAGE-NAME:TAG次に例を示します。
docker push containers.github.companyname.com/octocat/hello_docker:latest
GitHub のパッケージからリポジトリのリンクを解除する
メモ
リポジトリからパッケージのリンクを解除すると、パッケージのランディング ページからリポジトリ情報が削除され、パッケージがリポジトリからアクセス許可を継承するかどうかに応じて、アクセス パターンに影響する可能性があります。 詳しくは、「パッケージのアクセス制御と可視性の設定」をご覧ください。 「GitHub Packagesの権限について」で説明されているように、このビヘイビアーは Apache Maven パッケージには適用されません。
-
GitHub で、リンクを解除するパッケージの設定ページに移動します。
-
パッケージの設定ページに、リポジトリのソース セクションが表示されます。 このセクションが存在しない場合、パッケージは現在リポジトリにリンクされていません。
-
リポジトリのソース セクションの右上隅にあるごみ箱アイコンをクリックします。
リポジトリのソース セクションが存在しても、ごみ箱アイコンが存在しない場合があります。 これは、リポジトリのソースがパッケージ化されたコード (
package.jsonファイル、.gemspecファイル) の一部として定義されているためですが、実際には、GitHub 上のリポジトリにリンクされていません。 パッケージをリポジトリにリンクするには、上記のセクションの手順に従う必要があります。
- ダイアログで、パッケージからリポジトリのリンクを解除することを確認します。
パッケージを別のリポジトリに移行する
現在、リポジトリにリンクされているパッケージがあり、それを別のリポジトリにリンクする場合は、現在のリポジトリからパッケージのリンクを解除し、新しいリポジトリにリンクすることでこれを行うことができます。
- 手順に従って、リンクを解除します。「GitHub のパッケージからリポジトリのリンクを解除する」を参照してください。
- 手順に従ってパッケージを新しいリポジトリにリンクします。「GitHub でリポジトリを organization にスコープ指定されたパッケージに接続する」または「GitHub でリポジトリをユーザー スコープ指定されたパッケージに接続する」を参照してください。