发布范围限定为个人帐户或组织的包时,默认情况下,包不会链接到存储库。 若将包连接到存储库,包登陆页面将显示来自存储库的信息和链接,例如 README。 还可以选择让包从链接存储库继承其访问权限。 有关详细信息,请参阅“配置包的访问控制和可见性”。
在 GitHub
上将存储库连接到用户范围的包
-
在 GitHub 上,导航到个人帐户的主页面。
-
在 GitHub 的右上角,单击个人资料照片,然后单击“你的个人资料”。
-
在个人资料页面上的标题中,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包版本下,单击“连接存储库”。
-
选择要链接到包的存储库,然后单击“连接存储库”。
在 GitHub
上将存储库连接到组织范围的包
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包版本下,单击“连接存储库”。
-
选择要链接到包的存储库,然后单击“连接存储库”。
使用命令行将仓库连接到容器映像
注意: 如果发布链接到存储库的包,该包会自动继承链接存储库的访问权限,链接存储库中的 GitHub Actions 工作流会自动获得对包的访问权限,除非你的组织已禁用访问权限的自动继承。 有关详细信息,请参阅“配置包的访问控制和可见性”。
-
在 Dockerfile 中,添加此行,将
OWNER
和REPO
替换为详细信息:LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
例如,如果你是拥有
my-repo
的用户octocat
可将此行添加到 Dockerfile:LABEL org.opencontainers.image.source=https://github.com/octocat/my-repo
有关详细信息,请参阅 Docker 官方文档中的“标签”和
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
-
如果尚未向 Container registry 验证,请验证。 有关详细信息,请参阅“使用容器注册表”。
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
-
推送容器映像到 Container registry。
docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
例如:
docker push ghcr.io/octocat/hello_docker:latest
在 GitHub 上将存储库与包取消链接
Note
如果将存储库与包取消链接,则会从包的登陆页面中移除存储库信息,并且可能影响访问模式,具体取决于该包是否从存储库继承其访问权限。 有关详细信息,请参阅“配置包的访问控制和可见性”。 此行为不适用于 Apache Maven 包,详见“关于 GitHub Packages 的权限”中所述。
-
在 GitHub 上,导航到要取消链接的包的设置页。
-
在“包设置”页面上,你将看到一个“存储库源”部分。 如果该部分不存在,则说明包当前未链接到存储库。
-
单击“存储库源”部分右上角的回收站图标。
可能存在“存储库源”部分存在,但回收站图标不存在的情况。 这是因为存储库源已在
package.json
文件、.gemspec
文件等打包的代码中定义,但实际上未链接到 GitHub 上的存储库。 要将包链接到存储库,需要执行上一部分中的步骤。
- 在对话框中确认要将该存储库与该包取消链接。
将包迁移到另一个存储库
如果当前有一个包链接到存储库,并且想要将其链接到其他存储库,则可以通过取消该包与当前存储库的链接并将其链接到新存储库来完成此操作。
- 按照步骤取消链接,请参阅“从 GitHub 上的包取消链接存储库”。
- 按照步骤将包链接到新存储库,请参阅“将存储库连接到 GitHub 上的组织范围的包”或“将存储库连接到 GitHub 上的用户范围的包”。