Skip to main content

将仓库连接到包

可以将存储库连接到 GitHub 上的包。

发布范围限定为个人帐户或组织的包时,默认情况下,包不会链接到存储库。 若将包连接到存储库,包登陆页面将显示来自存储库的信息和链接,例如 README。 还可以选择让包从链接存储库继承其访问权限。 有关详细信息,请参阅“配置包的访问控制和可见性”。

在 GitHub

上将存储库连接到用户范围的包

  1. 在 GitHub 上,导航到个人帐户的主页面。

  2. 在 GitHub 的右上角,单击个人资料照片,然后单击“你的个人资料”。

    @octocat 的个人资料图片下的下拉菜单的屏幕截图。 “你的个人资料”用深橙色框出。

  3. 在个人资料页面上的标题中,单击 “包”选项卡。

  4. 搜索要管理的包的名称,然后单击该名称。

  5. 在包版本下,单击“连接存储库”。

  6. 选择要链接到包的存储库,然后单击“连接存储库”。

在 GitHub

上将存储库连接到组织范围的包

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 “包”选项卡。

    @octo-org 的个人资料页面的屏幕截图。 “包”选项卡以橙色边框突出显示。

  3. 搜索要管理的包的名称,然后单击该名称。

  4. 在包版本下,单击“连接存储库”。

  5. 选择要链接到包的存储库,然后单击“连接存储库”。

使用命令行将仓库连接到容器映像

**注意:**GitHub Enterprise Server 的 Container registry 目前为 beta 版本,可能随时更改。

必须启用 GitHub Packages 和子域隔离才能使用 Container registry。 有关详细信息,请参阅“使用容器注册表”。

  1. 在 Dockerfile 中,添加此行,将 HOSTNAMEOWNERREPO 替换为详细信息:

    LABEL org.opencontainers.image.source=https://HOSTNAME/OWNER/REPO
    

    例如,如果你是拥有 my-repo 的用户 octocat,且 GitHub 主机名为 github.companyname.com,可将此行添加到 Dockerfile:

    LABEL org.opencontainers.image.source=https://containers.github.companyname.com/octocat/my-repo
    

    有关详细信息,请参阅 Docker 官方文档中的“标签”和 opencontainers/image-spec 存储库中的“预定义的注释键”。

  2. 构建容器映像。 此示例从当前目录中的 Dockerfile 生成映像,并分配映像名称 hello_docker

    docker build -t hello_docker .
    
  3. (可选)查看刚刚创建的 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
    
  4. 为 Docker 映像分配名称和托管目标。

    docker tag IMAGE_NAME containers.HOSTNAME/NAMESPACE/NEW_IMAGE_NAME:TAG
    

    NAMESPACE 替换为你希望作为包限定范围的个人帐户或组织的名称。

    例如:

    docker tag 38f737a91f39 containers.github.companyname.com/octocat/hello_docker:latest
    
  5. 如果尚未向 Container registry 验证,请验证。 有关详细信息,请参阅“使用容器注册表”。

    $ echo $CR_PAT | docker login containers.HOSTNAME -u USERNAME --password-stdin
    > Login Succeeded
    
  6. 推送容器映像到 Container registry。

    docker push containers.HOSTNAME/NAMESPACE/IMAGE-NAME:TAG
    

    例如:

    docker push containers.github.companyname.com/octocat/hello_docker:latest
    

在 GitHub 上将存储库与包取消链接

Note

如果将存储库与包取消链接,则会从包的登陆页面中移除存储库信息,并且可能影响访问模式,具体取决于该包是否从存储库继承其访问权限。 有关详细信息,请参阅“配置包的访问控制和可见性”。 此行为不适用于 Apache Maven 包,详见“关于 GitHub Packages 的权限”中所述。

  1. 在 GitHub 上,导航到要取消链接的包的设置页。

  2. 在“包设置”页面上,你将看到一个“存储库源”部分。 如果该部分不存在,则说明包当前未链接到存储库。

  3. 单击“存储库源”部分右上角的回收站图标。

可能存在“存储库源”部分存在,但回收站图标不存在的情况。 这是因为存储库源已在 package.json 文件、.gemspec 文件等打包的代码中定义,但实际上未链接到 GitHub 上的存储库。 要将包链接到存储库,需要执行上一部分中的步骤。

  1. 在对话框中确认要将该存储库与该包取消链接。

将包迁移到另一个存储库

如果当前有一个包链接到存储库,并且想要将其链接到其他存储库,则可以通过取消该包与当前存储库的链接并将其链接到新存储库来完成此操作。

  1. 按照步骤取消链接,请参阅“从 GitHub 上的包取消链接存储库”。
  2. 按照步骤将包链接到新存储库,请参阅“将存储库连接到 GitHub 上的组织范围的包”或“将存储库连接到 GitHub 上的用户范围的包”。