在链接容器映像与仓库时,软件包登录页面将显示来自仓库的信息和链接,例如 README。
要在 GitHub 上连接仓库和容器映像,它们必须在 GitHub 上共用同一个所有者。 例如,my_repo
和 hello_docker
都归用户 monalisa
所有:
https://github.com/monalisa/my_repo
https://github.com/monalisa/hello_docker
将仓库连接到 GitHub 上用户拥有的容器映像
-
在 GitHub 上,导航到用户帐户的主页面。
-
在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)。
-
在个人资料页面的右上角,单击 Packages(包)。
-
搜索并选择您的包。
-
在容器映像登录页的右上角,单击 Package settings(包设置)。
-
在包版本下,单击 Connect repository(连接仓库)。
-
选择一个仓库,然后单击 Connect repository(连接仓库)。
将仓库连接到 GitHub 上组织拥有的容器映像
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 Packages(包)。
-
搜索并选择您的包。
-
在容器映像登录页的右上角,单击 Package settings(包设置)。
-
在包版本下,单击 Connect repository(连接仓库)。
-
选择一个仓库,然后单击 Connect repository(连接仓库)。
将仓库连接到命令行上的容器映像
-
在 Dockerfile 中添加此行,将
OWNER
和REPO
替换为您的详细信息:LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
例如,如果您是用户
monalisa
并且拥有my-repo
,您会将此行添加到 Dockerfile:LABEL org.opencontainers.image.source=https://github.com/monalisa/my-repo
更多信息请参阅官方 Docker 文档中的“LABEL”,以及
opencontainers/image-spec
仓库中的“预定义的标注键”。 -
构建容器映像。 此示例从当前目录的 Dockerfile 构建映像,并分配映像名称
hello_docker
。$ docker build -t hello_docker .
-
(可选)查看您想要标记的 Docker 映像的详细信息。
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > ghcr.io/my-org/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > ghcr.io/my-username/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > hello-world latest fce289e99eb9 16 months ago 1.84kB
-
使用所需的映像名称和托管目标标记 Docker 映像。
$ docker tag IMAGE_NAME ghcr.io/OWNER/NEW_IMAGE_NAME:TAG
例如:
$ docker tag 38f737a91f39 ghcr.io/monalisa/hello_docker:latest
-
如果尚未进行身份验证,请
GitHub Container Registry. 更多信息请参阅“向 GitHub Container Registry 验证”。
<pre><code class="hljs language-shell">$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
> Login Succeeded</code></pre>
- 推送容器映像到 GitHub Container Registry。
例如:$ docker push ghcr.io/OWNER/IMAGE-NAME:TAG
$ docker push ghcr.io/monalisa/hello_docker:latest