デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/test
というリポジトリ内のcom.example:test
という名前のパッケージを公開します。
GitHub Packages への認証を行う
Note: The GitHub Packages Docker registry will be superseded by GitHub Container Registry. To learn how to migrate your existing Docker images and any workflows using them, see "Migrating to GitHub Container Registry for Docker images" and "Container guides for GitHub Packages."
docker
loginコマンドを使い、DockerでGitHub Packagesの認証を受けることができます。
GitHub Packages への認証を行う
GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。 GitHub Packagesに直接、あるいはGitHub APIでユーザ名で認証を受けるのに、個人のアクセストークンが利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。
To authenticate using a GitHub Actionsのワークフロー:
- For package registries (
PACKAGE-REGISTRY.pkg.github.com
), you can use aGITHUB_TOKEN
. - For the container registry (
ghcr.io/OWNER/IMAGE-NAME
), you must use a personal access token.
個人アクセストークンでの認証
GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しい情報については「GitHub Packagesについて」を参照してください。
docker
loginコマンドを使い、DockerでGitHub Packagesの認証を受けることができます。
クレデンシャルをセキュアに保つ貯めに、個人アクセストークンは自分のコンピュータのローカルファイルに保存し、ローカルファイルからトークンを読み取るDockerの--password-stdin
フラグを使うことをおすすめします。
$ cat ~/TOKEN.txt | docker login https://docker.pkg.github.com -u USERNAME --password-stdin
To use this example login command, replace USERNAME
with your GitHub username and ~/TOKEN.txt
with the file path to your personal access token for GitHub.
詳しい情報については「Docker login」を参照してください。
GITHUB_TOKEN
での認証
GitHub Actionsワークフローを使っているなら、GITHUB_TOKEN
を使い、個人アクセストークンを保存したり管理したりする必要なくGitHub Packages内のパッケージの公開や利用ができます。 詳しい情報については「GITHUB_TOKEN
での認証」を参照してください。
Publishing an image
Note: The GitHub Packages Docker registry will be superseded by GitHub Container Registry. To learn how to migrate your existing Docker images and any workflows using them, see "Migrating to GitHub Container Registry for Docker images" and "Container guides for GitHub Packages."
Note: Image names must only use lowercase letters.
GitHub Packages は、リポジトリごとに複数の最上位 Docker イメージをサポートしています。 リポジトリは任意の数のイメージタグを持つことができます。 10GB以上のDockerイメージの公開やインストールの際には、サービスのパフォーマンスが低下するかもしれず、各レイヤーは5GBが上限です。 詳しい情報については、Dockerのドキュメンテーションの「Docker tag」を参照してください。
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しい情報については「パッケージの表示」を参照してください。
-
docker images
を使って、Dockerイメージのイメージ名とIDを確認してください。$ docker images > < > > REPOSITORY TAG IMAGE ID CREATED SIZE > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB
-
新しいDockerイメージを初めて公開し、
monalisa
という名前にできます。 and VERSION with package version at build time.$ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
-
パッケージ用のDockerイメージをまだ構築していないなら、イメージを構築してください。 OWNERをリポジトリを所有しているユーザあるいはOrganizationのアカウント名で、REPOSITORYをプロジェクトを含むリポジトリ名で、IMAGE_NAMEをパッケージもしくはイメージの名前で、VERSIONをビルド時点のパッケージバージョンで置き換え、イメージが現在のワーキングディレクトリにないならPATHをイメージへのパスで置き換えてください。 and PATH to the image if it isn't in the current working directory.
$ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
-
イメージを GitHub Packages.
$ docker push docker.pkg.github.com/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
# OWNER/REPO/IMAGE_NAMEでイメージにタグ付けする
$ docker tag c75bebcdd211 docker.pkg.github.com/octocat/octo-app/monalisa:1.0
# GitHub Packagesにイメージをプッシュ
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0
新しいDockerイメージを初めて公開し、monalisa
という名前にできます。
# docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION でイメージを構築
# Dockerfileはカレントワーキングディレクトリ (.)にあるものとする
$ docker build -t docker.pkg.github.com/octocat/octo-app/monalisa:1.0 .
$ docker build -t docker.pkg.github.com/octocat/octo-app/monalisa:1.0 .
# Push the image to GitHub Packages
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0
Downloading an image
Note: The GitHub Packages Docker registry will be superseded by GitHub Container Registry. To learn how to migrate your existing Docker images and any workflows using them, see "Migrating to GitHub Container Registry for Docker images" and "Container guides for GitHub Packages."
You can use the docker pull
command to install a docker image from GitHub Packages, replacing OWNER with the name of the user or organization account that owns the repository, REPOSITORY with the name of the repository containing your project, IMAGE_NAME with name of the package or image, and TAG_NAME with tag for the image you want to install.
$ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
ノート: イメージのプルはIMAGE_NAME:SHA
を使うのではなく、IMAGE_NAME:VERSION
を使って行ってください。