Skip to main content

将仓库连接到包

可以将存储库连接到 GitHub.com 上的容器映像。

GitHub Packages 适用于 GitHub Free、GitHub Pro、面向组织的 GitHub Free、GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 或更高版本以及 GitHub AE。
GitHub Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 此外,使用旧版按仓库计划的帐户无法访问 Container registry,因为这些帐户是按仓库计费的。 有关详细信息,请参阅“GitHub 的产品”。

通过将仓库连接到包,包登录页面将显示来自仓库的信息和链接,例如 README。

在 GitHub 上将仓库连接到用户拥有的包

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

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

  3. 在个人资料页面的右上角,单击“包”。 个人资料页上的包选项

  4. 在包版本下,单击“连接存储库”。 包登录页上的连接存储库按钮

  5. 选择存储库,然后单击“连接存储库”。 存储库选择弹出窗口中的连接存储库按钮

在 GitHub 上将仓库连接到组织拥有的包

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

  2. 在组织名称下,单击“包”。 组织登录页上的“包”选项卡

  3. 在包版本下,单击“连接存储库”。 包登录页上的连接存储库按钮

  4. 选择存储库,然后单击“连接存储库”。 存储库选择弹出窗口中的连接存储库按钮

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

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

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

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

    LABEL org.opencontainers.image.source=https://github.com/monalisa/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
    > containers.github.companyname.com/my-org/hello_docker         latest              38f737a91f39        47 hours ago        91.7MB
    > containers.github.companyname.com/my-username/hello_docker    latest              38f737a91f39        47 hours ago        91.7MB
    > hello-world                                                   latest              fce289e99eb9        16 months ago       1.84kB
  4. 使用所需的映像名称和托管目标标记 Docker 映像。

    $ docker tag IMAGE_NAME ghcr.io/OWNER/NEW_IMAGE_NAME:TAG

    例如:

    $ docker tag 38f737a91f39 containers.github.companyname.com/monalisa/hello_docker:latest
  5. 如果尚未向 Container registry 验证,请验证。 有关详细信息,请参阅“对 Container registry 进行身份验证”。

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

    $ docker push ghcr.io/OWNER/IMAGE-NAME:TAG

    例如:

    $ docker push containers.github.companyname.com/monalisa/hello_docker:latest