当您发布受个人账户或组织范围限制的软件包时,默认情况下该软件包不会链接到仓库。若将软件包连接到仓库,软件包的着陆页将显示来自仓库的信息和链接(例如 README)。您还可以选择让软件包继承其访问权限来自已链接的仓库。更多信息,请参阅 配置软件包的访问控制和可见性。
将仓库连接到用户范围的软件包(GitHub)
-
在 GitHub 上,导航到您个人账户的主页。
-
在 GitHub 右上角,单击您的个人资料图片,然后单击 您的个人资料。

-
在您的个人资料页面的页眉,单击 软件包 选项卡。
-
搜索并点击您想要管理的软件包名称。
-
在您的软件包版本下,点击 连接仓库。
-
选择要链接到该软件包的仓库,然后点击 连接仓库。
将仓库连接到组织范围的软件包(GitHub)
-
在 GitHub 上,前往您组织的主页。
-
在组织名称下,点击 软件包 选项卡。

-
搜索并点击您想要管理的软件包名称。
-
在您的软件包版本下,点击 连接仓库。
-
选择要链接到该软件包的仓库,然后点击 连接仓库。
使用命令行将仓库连接到容器镜像
注意
如果您发布的软件包已链接到仓库,软件包会自动继承该仓库的访问权限,并且链接仓库中的 GitHub Actions 工作流也会自动获得对该软件包的访问权限,除非您的组织已禁用访问权限的自动继承。更多信息,请参阅 配置软件包的访问控制和可见性。
-
在您的 Dockerfile 中添加以下行,将
OWNER和REPO替换为您的实际信息。LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO例如,如果您是用户
octocat并拥有my-repo,则在 Dockerfile 中加入此行。LABEL org.opencontainers.image.source=https://github.com/octocat/my-repo更多信息,请参阅官方 Docker 文档中的 LABEL,以及
opencontainers/image-spec仓库中的 预定义注释键。 -
构建您的容器镜像。此示例从当前目录的 Dockerfile 构建镜像,并将镜像命名为
hello_docker。docker build -t hello_docker . -
(可选)检查刚创建的 Docker 镜像的详细信息。
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > hello_docker latest 142e665b1faa 5 seconds ago 125MB > redis latest afb5e116cac0 3 months ago 111MB > alpine latest a6215f271958 5 months ago 5.29MB -
为您的 Docker 镜像指定名称和托管位置。
docker tag IMAGE_NAME ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG将
NAMESPACE替换为您希望软件包归属的个人账户或组织名称。例如
docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest -
如果尚未完成,请对容器注册表进行身份验证。更多信息请参阅 使用容器注册表。
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded -
将您的容器镜像推送到容器注册表。
docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG例如
docker push ghcr.io/octocat/hello_docker:latest
在 GitHub 上解除仓库与软件包的链接
注意
解除软件包与仓库的链接会从软件包的着陆页移除仓库信息,并可能会影响访问模式(取决于软件包是否继承自仓库的访问权限)。更多信息,请参阅 配置软件包的访问控制和可见性。此行为不适用于 Apache Maven 软件包,详见 GitHub Packages 权限概览。
-
在 GitHub 上,前往您想要解除链接的软件包的设置页面。
-
在软件包设置页面,您会看到“仓库来源”部分。如果此部分不存在,则该软件包当前未链接到任何仓库。
-
点击“仓库来源”部分右上角的垃圾桶图标。
可能会出现“仓库来源”部分存在但没有垃圾桶图标的情况。这是因为仓库来源已在打包代码(例如
package.json文件、.gemspec文件)中定义,但实际上并未在 GitHub 上链接到仓库。若要将软件包链接到仓库,需要按照上述章节的步骤操作。
- 在对话框中确认您要解除仓库与软件包的链接。
将软件包迁移到另一个仓库
如果您当前的某个软件包已链接到仓库,且希望改为链接到另一个仓库,可以先解除与当前仓库的链接,再链接到新的仓库。
- 按照下面的步骤解除链接,参见 在 GitHub 上解除仓库与软件包的链接。
- 按照下面的步骤将软件包链接到新的仓库,参见 将仓库连接到组织范围的软件包(GitHub) 或 将仓库连接到用户范围的软件包(GitHub)。