Skip to main content

リポジトリのパッケージへの接続

リポジトリを GitHub のパッケージに接続できます。

個人アカウントまたは Organization にスコープ指定されたパッケージを公開すると、既定では、このパッケージはリポジトリにリンクされません。 パッケージをリポジトリに接続すると、パッケージのランディング ページには、リポジトリから README などの情報やリンクが表示されるようになります。 パッケージのアクセス許可をリンク先のリポジトリから継承させることもできます。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。

GitHub

でリポジトリをユーザーにスコープ指定されたパッケージに接続する

  1. GitHub で、個人アカウントのメイン ページに移動します。

  2. GitHub の右上隅で、プロフィール写真をクリックし、[あなたのプロフィール] をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [自分のプロファイル] が濃いオレンジ色の枠線で囲まれています。

  3. プロファイル ページのヘッダーで、 [パッケージ] タブをクリックします。

  4. 検索したら、管理するパッケージの名前をクリックします。

  5. パッケージのバージョンで、 [リポジトリの接続] をクリックします。

  6. パッケージにリンクするリポジトリを選び、 [リポジトリの接続] をクリックします。

GitHub

でリポジトリを Organization にスコープ指定されたパッケージに接続する

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのバージョンで、 [リポジトリの接続] をクリックします。

  5. パッケージにリンクするリポジトリを選び、 [リポジトリの接続] をクリックします。

コマンドラインを使ってリポジトリをコンテナイメージに接続する

Note

現在、Container registry は GitHub Enterprise Server に対して ベータ 段階であり、変更される可能性があります。

Container registry を使うには、GitHub Packages と Subdomain Isolation の両方を有効にする必要があります。 詳しくは、「コンテナレジストリの利用」を参照してください。

  1. Dockerfile で、次の行を追加します。このとき、HOSTNAMEOWNER および REPO はご自分のものに置き換えます。

    LABEL org.opencontainers.image.source=https://HOSTNAME/OWNER/REPO
    

    たとえば、ユーザー octocatmy-repo を所有し、GitHub ホスト名が github.companyname.com である場合、 次の行を Dockerfile に追加します。

    LABEL org.opencontainers.image.source=https://containers.github.companyname.com/octocat/my-repo
    

    詳細については、Docker の公式ドキュメントの「LABEL」および opencontainers/image-spec リポジトリの「定義済みの注釈キー」を参照してください。

  2. あなたのコンテナイメージを構築します。 この例では、現在のディレクトリ内の Dockerfile からイメージをビルドして、イメージ名 hello_docker を割り当てます。

    docker build -t hello_docker .
    
  3. 必要に応じて、先ほど作成した 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
    
  4. Docker イメージに名前とホスティング先を割り当てます。

    docker tag IMAGE_NAME containers.HOSTNAME/NAMESPACE/NEW_IMAGE_NAME:TAG
    

    NAMESPACE を、パッケージのスコープ指定先にしたい個人アカウントまたは Organization の名前に置き換えます。

    次に例を示します。

    docker tag 38f737a91f39 containers.github.companyname.com/octocat/hello_docker:latest
    
  5. まだContainer registryで認証を受けていなければ、受けてください。 詳しくは、「コンテナレジストリの利用」を参照してください。

    $ echo $CR_PAT | docker login containers.HOSTNAME -u USERNAME --password-stdin
    > Login Succeeded
    
  6. コンテナイメージをContainer registryにプッシュしてください。

    docker push containers.HOSTNAME/NAMESPACE/IMAGE-NAME:TAG
    

    次に例を示します。

    docker push containers.github.companyname.com/octocat/hello_docker:latest
    

GitHub のパッケージからリポジトリのリンクを解除する

Note

リポジトリからパッケージのリンクを解除すると、パッケージのランディング ページからリポジトリ情報が削除され、パッケージがリポジトリからアクセス許可を継承するかどうかに応じて、アクセス パターンに影響する可能性があります。 詳しくは、「パッケージのアクセス制御と可視性の設定」をご覧ください。 「GitHub Packagesの権限について」で説明されているように、このビヘイビアーは Apache Maven パッケージには適用されません。

  1. GitHub で、リンクを解除するパッケージの設定ページに移動します。

  2. パッケージの設定ページに、リポジトリのソース セクションが表示されます。 このセクションが存在しない場合、パッケージは現在リポジトリにリンクされていません。

  3. リポジトリのソース セクションの右上隅にあるごみ箱アイコンをクリックします。

リポジトリのソース セクションが存在しても、ごみ箱アイコンが存在しない場合があります。 これは、リポジトリのソースがパッケージ化されたコード (package.json ファイル、.gemspec ファイル) の一部として定義されているためですが、実際には、GitHub 上のリポジトリにリンクされていません。 パッケージをリポジトリにリンクするには、上記のセクションの手順に従う必要があります。

  1. ダイアログで、パッケージからリポジトリのリンクを解除することを確認します。

パッケージを別のリポジトリに移行する

現在、リポジトリにリンクされているパッケージがあり、それを別のリポジトリにリンクする場合は、現在のリポジトリからパッケージのリンクを解除し、新しいリポジトリにリンクすることでこれを行うことができます。

  1. 手順に従って、リンクを解除します。「GitHub のパッケージからリポジトリのリンクを解除する」を参照してください。
  2. 手順に従ってパッケージを新しいリポジトリにリンクします。「GitHub でリポジトリを Organization にスコープ指定されたパッケージに接続する」または「GitHub でリポジトリをユーザー スコープ指定されたパッケージに接続する」を参照してください。