Skip to main content

将仓库连接到包

您可以在 GitHub.com 上将仓库连接到容器映像。

GitHub Packages is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 or higher, and GitHub AE.


GitHub Packages is not available for private repositories owned by accounts using legacy per-repository plans. Also, accounts using legacy per-repository plans cannot access the Container registry since these accounts are billed by repository. 更多信息请参阅“GitHub 的产品”。

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

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

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

  2. 在 GitHub.com 的右上角,单击您的头像,然后单击 Your profile(您的个人资料)个人资料照片

  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项

  4. 在包版本下,单击 Connect repository(连接仓库)包登录页上的连接仓库按钮

  5. 选择一个仓库,然后单击 Connect repository(连接仓库)仓库选择弹出窗口中的连接仓库按钮

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

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

  2. 在组织名称下,单击 Packages(包)

    组织登陆页面上的“包”选项卡

  1. 在包版本下,单击 Connect repository(连接仓库)包登录页上的连接仓库按钮

  2. 选择一个仓库,然后单击 Connect repository(连接仓库)仓库选择弹出窗口中的连接仓库按钮

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

  1. 在 Dockerfile 中,添加以下行,将 OWNERREPO 替换为您的详细信息:

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

    例如,如果您是用户 monalisa 并且拥有 my-repo,并且 GitHub.com 主机名是 github.companyname.com,则可以将以下行添加到 Dockerfile 中:

    LABEL org.opencontainers.image.source=https://github.com/monalisa/my-repo

    更多信息请参阅官方 Docker 文档中的“LABEL”,以及 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