ARTIFACTORY:它看起来像什么- ghcr。在Artifactory的io存储库

德里克·庞
2023-01-22 11:06

本文将提供一个简单的示例来创建ghcr.io远程存储库。提供的示例和屏幕截图来自Artifactory 7.41.7。

设置

首先,我们将在Artifactory中创建一个新的Docker远程存储库。
我们将使用https://ghcr.io/作为URL。用户名和密码/访问令牌是从Github生成的个人访问令牌(PAT)它将能够访问此存储库中所需的任何图像。如果您不希望输入任何凭据,您可以将用户名和密码/访问令牌字段留空。

用户添加图片

请注意,使用凭据,测试按钮将导致来自Github的403响应。这是意料之中的,可以忽略不计。

用户添加图片

测试

现在让我们进行一个测试,看看我们是否可以从ghcr.io中解析。

在这个测试中,我们将尝试解决一个私人ghcr.ioimage. I had previously uploaded a docker image, hello-test:1.0, to ghcr.io

对于这个测试,我将首先尝试匿名访问这个私有映像(没有凭据)。为此,我删除了之前在设置部分中添加的远程存储库配置中的用户名和密码/访问令牌部分。

首先,对Artifactory实例执行docker登录。在本例中是到达Artifactory的Artifactory URL,例如“docker. artit .local”。在本例中,Artifactory使用的是默认值库路径方法,以便对以下docker命令进行相应的格式化。$ docker login -uartifactory_user
密码:
登录成功

接下来,我尝试拉出私有docker映像。$ docker pull /ghcr-remote/derekscp/hello-test:1.0
来自daemon: manifest for /ghcr-remote/derekscp/hello-test:1.0 not found: manifest unknown:注册表不知道指定的清单。

从中我们可以看出Artifactory是无法找到这张图片的。
在artifact -request-out.log(它是包含向上游远程存储库发出请求的日志文件)中,我们可以看到我们的远程存储库ghcr-remote正在向外延伸,但得到了401。2022 - 08 - 24 t18:19:24.852z | | ghcr-remote | | | https://ghcr.io/ | 301 | 0 | 0 | 114年
2022 - 08 - 24 t18:19:24.961z | | ghcr-remote | | | /功能/包| 200 | 0 | 0 | 109年
2022 - 08 - 24 t18:19:25.118z c356bf21512c2 | 441 | ghcr-remote | | | https://ghcr.io/token?scope=repository: derekscp / hello-test: pull&service = ghcr.io |401| 0 | 73 | 199

所以现在我们将重新添加Github PAT如设置部分所示,它可以访问这个私有映像。

然后我们再试一次拉:$ docker pull /ghcr-remote/derekscp/hello-test:1.0
1.0:从ghcr-remote/derekscp/hello-test中提取
文摘:sha256: f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4
状态:下载了/ghcr-remote/derekscp/hello-test:1.0的更新映像
<艺术> / ghcr-remote / derekscp / hello-test: 1.0

我们现在可以看到,它是成功的。此外,在工件请求输出日志中,我们看到成功的200个请求。2022 - 08 - 24 t18:35:02.992z fe56137172a50 | 701 | ghcr-remote | ghcrtokendemo | | https://ghcr.io/token?scope=repository: derekscp / hello-test: pull&service = ghcr.io | 200 | 0 | 69 | 231
2022 - 08 - 24 t18:35:03.303z fe56137172a50 | 701 | ghcr-remote | ghcrtokendemo | |头https://ghcr.io/v2/derekscp/hello-test/manifests/1.0 | 200 | 0 | 525 | 771
2022 - 08 - 24 t18:36:07.228z 45 df5f2f8a8985b2 | | ghcr-remote | ghcrtokendemo | | https://ghcr.io/v2/derekscp/hello-test/manifests/1.0 | 200 | 525 | 387 | 0

请注意。如果您仍然没有看到docker映像的成功拉出,请确保您的Github PAT有足够的权限。
即。
用户添加图片

如果它与权限有关,您可能会在工件请求输出日志中看到传出请求返回403。2022 - 08 - 24 t18:30:18.458z | 56 c842492d9bfb53 | ghcr-remote | ghcrtokendemo | | https://ghcr.io/token?scope=repository: derekscp / hello-test: pull&service = ghcr.io | 200 | 0 | 69 | 652
2022 - 08 - 24 t18:30:18.786z | 56 c842492d9bfb53 | ghcr-remote | ghcrtokendemo https://ghcr.io/v2/derekscp/hello-test/manifests/1.0 | | |头403| 0 | 86 | 1568