发布范围限定为个人帐户或组织的软件包时,默认情况下该软件包不会链接到代码库。如果将软件包连接到代码库,则软件包的登录页将显示来自代码库的信息和链接,例如自述文件。您还可以选择让软件包继承其链接代码库的访问权限。有关更多信息,请参阅“配置软件包的访问控制和可见性”。
将代码库连接到 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 上的用户范围软件包”。