Skip to main content

将仓库连接到包

可以将存储库连接到 你的 GitHub Enterprise Server 实例 上的包。

发布范围限定为个人帐户或组织的包时,默认情况下,包不会链接到存储库。 若将包连接到存储库,包登陆页面将显示来自存储库的信息和链接,例如 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 Enterprise Server 实例 主机名为 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. 在对话框中确认要将该存储库与该包取消链接。