注: GitHub Packages 目前正在测试用于 GitHub Enterprise Server 2.22。 要加入 您的 GitHub Enterprise Server 实例 的测试版,请使用注册表单。
注:安装或发布 Docker 映像时,GitHub Packages 当前不支持外部图层,如 Windows 映像。
向 GitHub Packages 验证
Note: The GitHub Packages Docker registry will be superseded by GitHub Container Registry in a future GitHub Enterprise Server release.
您可以使用 docker
登录命令,通过 Docker 向 GitHub Packages 验证。
必须在 您的 GitHub Enterprise Server 实例 的网站管理员为您的实例启用 Docker 支持和子域隔离后,您才可在 GitHub Packages 上使用 Docker 注册表。 更多信息请参阅“为企业管理 GitHub Packages”。
向 GitHub Packages 验证
您需要访问令牌才能发布、安装和删除 GitHub Packages 中的包。 您可以使用个人访问令牌直接向 GitHub Packages 或 GitHub API 验证您的用户名。 创建个人访问令牌时,可根据需要为令牌分配不同的作用域。
要
使用 GitHub Actions 工作流程向 GitHub Packages 验证,必须使用 GITHUB_TOKEN
。
使用个人访问令牌进行身份验证
您必须使用具有适当范围的个人访问令牌才可在 GitHub Packages 中发布和安装。 更多信息请参阅“关于 GitHub Packages”。
您可以使用 docker
登录命令,通过 Docker 向 GitHub Packages 验证。
为确保凭据安全,我们建议您将个人访问令牌保存在您计算机上的本地文件中,然后使用 Docker 的 --password-stdin
标志从本地文件读取您的令牌。
$ cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin
要使用此示例登录命令,请将 USERNAME
替换为您的 GitHub Enterprise Server 用户名,将 HOSTNAME
替换为 您的 GitHub Enterprise Server 实例, 的 URL,并将 ~/TOKEN.txt
替换为您用于 GitHub Enterprise Server 的个人访问令牌的文件路径。
更多信息请参阅“Docker 登录”。
使用 GITHUB_TOKEN
进行身份验证
如果您使用的是 GitHub Actions 工作流程,可以使用 GITHUB_TOKEN
发布和使用 GitHub Packages 中的软件包,而无需存储和管理个人访问令牌。 更多信息请参阅“使用 GITHUB_TOKEN
验证身份”。
发布映像
Note: The GitHub Packages Docker registry will be superseded by GitHub Container Registry in a future GitHub Enterprise Server release.
注:映像名称只能使用小写字母。
GitHub Packages 支持每个仓库的多个顶层 Docker 镜像。 仓库可以拥有任意数量的映像标记。 在发布或安装大于 10GB 的 Docker 映像(每个图层上限为 5GB)时,可能会遇到服务降级的情况。 更多信息请参阅 Docker 文档中的“Docker 标记”。
在发布包后,您可以在 GitHub 上查看该包。 更多信息请参阅“查看包”。
-
使用
docker images
确定 docker 映像的名称和 ID。$ docker images > < > > REPOSITORY TAG IMAGE ID CREATED SIZE > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB
-
使用 Docker 映像 ID 标记 docker 映像,将 OWNER 替换为拥有仓库的用户或组织帐户的名称,将 REPOSITORY 替换为包含项目的仓库的名称,将 IMAGE_NAME 替换为包或映像的名称,将 VERSION 替换为构建时的包版本。 HOSTNAME 替换为 您的 GitHub Enterprise Server 实例, 的主机名,VERSION 替换为构建时的软件包版本。
如果尚未为包构建 docker 映像,请构建映像,将 OWNER 替换为拥有仓库的用户或组织帐户的名称,将 REPOSITORY 替换为包含项目的仓库的名称,将 IMAGE_NAME 替换为包或映像的名称,将 VERSION 替换为构建时的包版本,将 PATH 替换为映像路径(如果映像未在当前工作目录中)。
-
您可能首次发布新的 Docker 映像并将其命名为
monalisa
。 HOSTNAME 使用 您的 GitHub Enterprise Server 实例 的主机名,以及映像的 PATH(如果不在当前工作目录中)。$ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
-
将映像发布到 GitHub Packages.
$ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
注:必须使用
IMAGE_NAME:VERSION
推送映像,而不能使用IMAGE_NAME:SHA
。
发布 Docker 映像的示例
您可以使用映像 ID 将 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 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
下载映像
Note: The GitHub Packages Docker registry will be superseded by GitHub Container Registry in a future GitHub Enterprise Server release.
您可以使用 docker pull
命令从 GitHub Packages 安装 Docker 映像,将 OWNER 替换为拥有仓库的用户或组织帐户的名称,将 REPOSITORY 替换为包含项目的仓库的名称,将 IMAGE_NAME 替换为包或映像的名称,将 HOSTNAME 替换为 您的 GitHub Enterprise Server 实例 的主机名称,并将 TAG_NAME 替换为要安装的映像的标记。
$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
注:必须使用 IMAGE_NAME:VERSION
推送映像,而不能使用 IMAGE_NAME:SHA
。
延伸阅读
- "删除包"