ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

GitHub パッケージレジストリで利用するために Docker を設定する

Docker クライアントが、GitHub パッケージレジストリ を利用して Docker イメージを公開および取得できるよう設定できます。

本記事の内容:

GitHub パッケージレジストリ への認証を行う

docker コマンドを使うと、GitHub ユーザ名とパスワードまたは GitHub ユーザ名と read:packages および write:packages のスコープの個人アクセストークンを使って GitHub パッケージレジストリ を認証できます。 リポジトリがプライベートである場合、個人アクセストークンも repo のスコープを持っている必要があります。

メモ: 2 要素認証を有効にしている場合、パスワードではなく個人アクセストークンを使用する必要があります。 詳細は「コマンドライン用の個人アクセストークンを作成する」を参照してください。

$ docker login docker.pkg.github.com -u USERNAME -p PASSWORD/TOKEN

パッケージを公開する

GitHub パッケージレジストリ は、リポジトリごとに複数の最上位 Docker イメージをサポートしています。

  1. Docker イメージのイメージ名と ID を、docker images コマンドにより確認します:
$ docker images
> < >
> REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
> IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  1. 前のステップで確認した ID を使って、Docker イメージに、プッシュしたいエンドポイント、イメージ名、およびバージョンでタグ付けします。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。

    $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  2. イメージを GitHub パッケージレジストリ にプッシュします:

    $ docker push docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  3. パッケージには、以下の URL からアクセスできます。OWNER をあなたの GitHub ユーザもしくは Organization 名に、REPOSITORY をリポジトリ名に置き換えてください。

https://github.com/OWNER/REPOSITORY/packages

たとえば、monalisa というイメージのバージョン 1.0 を octocat/octo-app リポジトリにプッシュするコマンドは以下のようになります:

$ docker images

> REPOSITORY           TAG      IMAGE ID      CREATED      SIZE
> monalisa             1.0      c75bebcdd211  4 weeks ago  1.11MB

# Tag the image with the OWNER/REPO/IMAGE_NAME format
$ docker tag c75bebcdd211 docker.pkg.github.com/octocat/octo-app/monalisa:1.0

# Push the image to GitHub パッケージレジストリ

$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

パッケージレジストリイベントを受信する

パッケージが 'published' あるいは 'updated' になったときに、webhook イベントを受信することができます。詳細は GitHub 開発者ドキュメンテーション の RegistryPackageEvent を参照してください。

パッケージをインストールする

イメージのリポジトリとタグ名を付けて docker pull コマンドを実行することで、GitHub パッケージレジストリ から Docker イメージをインストールできます。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。

$ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

パッケージを削除する

あなたのパッケージに依存しているかもしれないプロジェクトを壊すことがないよう、GitHub パッケージレジストリはパッケージの削除や、パッケージのバージョンの削除をサポートしていません。法的な理由やGDPR標準といった特別な状況下では、GitHub Supportを通じてパッケージの削除をリクエストできます。連絡フォームを使って「GitHub パッケージレジストリ」というタイトル行でGitHub Supportに連絡してください。

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください