個人アカウントまたは Organization にスコープ指定されたパッケージを公開すると、既定では、このパッケージはリポジトリにリンクされません。 パッケージをリポジトリに接続すると、パッケージのランディング ページには、リポジトリから README などの情報やリンクが表示されるようになります。 パッケージは、リンクされたリポジトリの可視性の設定を継承します。また、リンクされたリポジトリからアクセス許可がパッケージに継承されるようにすることもできます。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。
GitHub でリポジトリをユーザーにスコープ指定されたパッケージに接続する
-
GitHub で、個人アカウントのメイン ページに移動します。
-
GitHub.com の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。
-
プロファイル ページの右上にある [パッケージ] をクリックします。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのバージョンで、 [リポジトリの接続] をクリックします。
-
パッケージにリンクするリポジトリを選び、 [リポジトリの接続] をクリックします。
GitHub でリポジトリを Organization にスコープ指定されたパッケージに接続する
- GitHubで、Organizationのメインページにアクセスしてください。
- Organization 名の下にある [パッケージ] タブをクリックします。
- 検索したら、管理するパッケージの名前をクリックします。
- パッケージのバージョンで、 [リポジトリの接続] をクリックします。
- パッケージにリンクするリポジトリを選び、 [リポジトリの接続] をクリックします。
コマンドラインを使ってリポジトリをコンテナイメージに接続する
注: リポジトリにリンクされているパッケージを公開した場合、パッケージは自動的にリンクされたリポジトリのアクセス許可を継承し、Organization によってアクセス許可の自動継承が無効にされていない限り、リンクされたリポジトリ内の GitHub Actions ワークフローは自動的にパッケージにアクセスできるようになります。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。
-
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
リポジトリの「定義済みの注釈キー」を参照してください。 -
あなたのコンテナイメージを構築します。 この例では、現在のディレクトリ内の 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 ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
NAMESPACE
を、パッケージのスコープ指定先にしたい個人アカウントまたは Organization の名前に置き換えます。次に例を示します。
$ docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
-
まだContainer registryで認証を受けていなければ、受けてください。 詳しくは、「コンテナレジストリの利用」を参照してください。
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
-
コンテナイメージをContainer registryにプッシュしてください。
$ docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
次に例を示します。
$ docker push ghcr.io/octocat/hello_docker:latest