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

GitHub Packagesで利用するために Docker を設定する

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

GitHub PackagesはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 2.22、GitHub One、GitHub AEで利用できます。

ここには以下の内容があります:

ノート: GitHub Packagesは現在GitHub Enterprise Server 2.22でベータです。 your GitHub Enterprise Server instanceのベータに参加するには、サインアップフォームを使ってください。

デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/testというリポジトリ内のcom.example:testという名前のパッケージを公開します。

GitHub Packages への認証を行う

ノート:GitHub Packages Dockerレジストリは、将来のGitHub Enterprise Serverリリースで改善されたコンテナサポートを提供します。

docker loginコマンドを使い、DockerでGitHub Packagesの認証を受けることができます。

Docker レジストリを GitHub Packages で使用する前に、your GitHub Enterprise Server instance のサイト管理者がインスタンスに対し Docker のサポートとand Subdomain Isolation を有効化する必要があります。 詳しい情報については、「Enterprise 向けの GitHub Packages を管理する」を参照してください。

GitHub Packages への認証を行う

GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。 GitHub Packagesに直接、あるいはGitHub APIでユーザ名で認証を受けるのに、個人のアクセストークンが利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。

認証を GitHub Actionsワークフローを使ってGitHub Packagesに対して行うには、GITHUB_TOKENを使わなければなりません。

個人アクセストークンでの認証

GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しい情報については「GitHub Packagesについて」を参照してください。

docker loginコマンドを使い、DockerでGitHub Packagesの認証を受けることができます。

クレデンシャルをセキュアに保つ貯めに、個人アクセストークンは自分のコンピュータのローカルファイルに保存し、ローカルファイルからトークンを読み取るDockerの--password-stdinフラグを使うことをおすすめします。

$ docker images

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

# OWNER/REPO/IMAGE_NAMEでイメージにタグ付けする
$ docker tag c75bebcdd211 docker.pkg.github.com/octocat/octo-app/monalisa:1.0

# {{ site.data.variables.product.prodname_registry }}にイメージをプッシュ
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

この例の login コマンドを使うには、USERNAME を GitHub Enterprise Server ユーザ名に、,HOSTNAME を your GitHub Enterprise Server instance の URL に、~/TOKEN.txt GitHub Enterprise Server の個人アクセストークンへのファイルパスに置き換えてください。

詳しい情報については「Docker login」を参照してください。

GITHUB_TOKENでの認証

GitHub Actionsワークフローを使っているなら、GITHUB_TOKENを使い、個人アクセストークンを保存したり管理したりする必要なくGitHub Packages内のパッケージの公開や利用ができます。 詳しい情報については「GITHUB_TOKENでの認証」を参照してください。

イメージを公開する

ノート:GitHub Packages Dockerレジストリは、将来のGitHub Enterprise Serverリリースで改善されたコンテナサポートを提供します。

注釈: イメージ名には小文字のみを使用する必要があります。

GitHub Packages は、リポジトリごとに複数の最上位 Docker イメージをサポートしています。 リポジトリは任意の数のイメージタグを持つことができます。 10GB以上のDockerイメージの公開やインストールの際には、サービスのパフォーマンスが低下するかもしれず、各レイヤーは5GBが上限です。 詳しい情報については、Dockerのドキュメンテーションの「Docker tag」を参照してください。

パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しい情報については「パッケージの表示」を参照してください。

  1. docker imagesを使って、Dockerイメージのイメージ名とIDを確認してください。

    $ docker images
    > < >
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  2. 新しいDockerイメージを初めて公開し、monalisaという名前にできます。 HOSTNAME を your GitHub Enterprise Server instance のホスト名に、VERSION をビルド時のパッケージバージョンに置き換えます。

    $ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  3. パッケージ用のDockerイメージをまだ構築していないなら、イメージを構築してください。 OWNERをリポジトリを所有しているユーザあるいはOrganizationのアカウント名で、REPOSITORYをプロジェクトを含むリポジトリ名で、IMAGE_NAMEをパッケージもしくはイメージの名前で、VERSIONをビルド時点のパッケージバージョンで置き換え、イメージが現在のワーキングディレクトリにないならPATHをイメージへのパスで置き換えてください。 HOSTNAME を your GitHub Enterprise Server instance のホスト名に、イメージが現在のワーキングディレクトリにない場合は PATH をイメージのパスに置き換えます。

    $ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  4. イメージを GitHub Packages.

    $ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    ノート: イメージのプッシュはIMAGE_NAME:SHAを使うのではなく、IMAGE_NAME:VERSIONを使って行ってください。

Dockerイメージのプッシュの例

monalisaイメージのバージョン1.0を、イメージIDを使ってoctocat/octo-appに公開できます。

$ docker images

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

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

# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

新しいDockerイメージを初めて公開し、monalisaという名前にできます。

# Build the image with docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
# Assumes Dockerfile resides in the current working directory (.)
$ docker build -t docker.HOSTNAME/octocat/octo-app/monalisa:1.0 .

# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

イメージをダウンロードする

ノート:GitHub Packages Dockerレジストリは、将来のGitHub Enterprise Serverリリースで改善されたコンテナサポートを提供します。

docker pullコマンドを使って、DockerイメージをGitHub Packagesからインストールできます。OWNERをリポジトリを所有しているユーザあるいはOrganizationのアカウント名で、REPOSITORYをプロジェクトを含むリポジトリ名で、IMAGE_NAMEをパッケージもしくはイメージの名前で、 HOSTNAMEをyour GitHub Enterprise Server instanceのホスト名で、TAG_NAMEをインストールするイメージのタグで置き換えます。

$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

ノート: イメージのプルはIMAGE_NAME:SHAを使うのではなく、IMAGE_NAME:VERSIONを使って行ってください。

参考リンク

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.