Skip to main content

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

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

この機能を使用できるユーザーについて

GitHub Packagesは、GitHub Free、GitHub Pro、組織用GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0以降で利用できます。
GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、従来のリポジトリごとのプランを利用しているアカウントは、リポジトリごとに課金されるため、詳細なアクセス許可をサポートしているレジストリにはアクセスできません。 詳細なアクセス許可をサポートするレジストリの一覧については、「GitHub Packagesの権限について」を参照してください。 詳しくは、「GitHub のプラン」をご覧ください。

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

GitHub

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

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

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

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

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

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

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

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

GitHub

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

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

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

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

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

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

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

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

注: リポジトリにリンクされているパッケージを公開した場合、パッケージは自動的にリンクされたリポジトリのアクセス許可を継承し、Organization によってアクセス許可の自動継承が無効にされていない限り、リンクされたリポジトリ内の GitHub Actions ワークフローは自動的にパッケージにアクセスできるようになります。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。

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

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

    たとえば、ユーザーが octocat で、my-repo を所有している場合、Dockerfile に次の行を追加します。

    LABEL org.opencontainers.image.source=https://github.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 ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
    

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

    次に例を示します。

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

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

    docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
    

    次に例を示します。

    docker push ghcr.io/octocat/hello_docker:latest