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

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

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

本記事の内容:

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

Using the docker command, you can authenticate to GitHub パッケージレジストリ using your GitHub username and a personal access token with the read:packages and write:packages scopes. リポジトリがプライベートである場合、個人アクセストークンも repo のスコープを持っている必要があります。 詳細は「コマンドライン用の個人アクセストークンを作成する」を参照してください。

$ docker login docker.pkg.github.com -u USERNAME -p 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
  2. 前のステップで確認した ID を使って、Docker イメージに、プッシュしたいエンドポイント、イメージ名、およびバージョンでタグ付けします。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。

    $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Alternatively, you can refer to the local name of your docker image instead of the image ID.

    $ docker tag local-image docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    If you are building a new docker image from scratch, you can specify GitHub パッケージレジストリ at build time.

    $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  3. Push the image to GitHub パッケージレジストリ:

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

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

For example, to push version 1.0 of an image called monalisa to the octocat/octo-app repository, the commands would be:

$ 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

また、ローカルイメージ名を参照することもできます。

# Tag the image with the OWNER/REPO/IMAGE_NAME format
$ docker tag monalisa:1.0 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

monalisa という Docker イメージを最初からビルドして公開するための方法は、次の通りです:

# Build the image with the docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION format
# Assumes Dockerfile in the current working directory (.)
$ docker build -t 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

パッケージを削除する

To avoid breaking projects that may depend on your packages, GitHub パッケージレジストリ does not support deleting published versions of a package or an entire published package for public repositories. 法的な理由やGDPR標準への準拠といった特別な状況下では、GitHub Supportを通じてパッケージの削除をリクエストできます。 GitHub Supportへの連絡には連絡フォームを使い、タイトル行を「GitHub パッケージレジストリ」としてください。

You can delete private packages via GitHub's API. For more information, see "Access to package version deletion" in GitHub 開発者ドキュメンテーション.

担当者にお尋ねください

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

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