1

我正在尝试在 CodeSpace 中预配置一个私有容器注册表,以便研讨会参与者可以使用它。根据文档,这一切都非常简单,但看起来我遗漏了一些东西,因为它不起作用,并且文档不清楚我在接收端需要期待什么。

到目前为止我所做的:

  • 我有一个继承自 univesal-linux:1.6.4 的自定义 CodeSpace 容器映像
  • 我已经配置了 3 个记录的变量:
    • GH_CONTAINER_REGISTRY_SERVER=ghcr.io
    • GH_CONTAINER_REGISTRY_USER=jessehouwing
    • GH_CONTAINER_REGISTRY_PASSWORD=具有包(读取)权限的 PAT

在此处输入图像描述

  • 我已经重建了代码空间
  • 我尝试了不同的前缀GH_,但无济于事。

如果我正确阅读了文档,这应该确保 docker 可以使用我的凭据从 ghcr 中提取,但我得到的只是一个错误:

codespace ➜ /workspaces/attendee-jessehouwing (main) $ docker pull ghcr.io/xxxxx-customers/xxxxx-cli
Using default tag: latest
Error response from daemon: Head "https://ghcr.io/v2/xxxxx-customers/xxxxx-cli/manifests/latest": unauthorized

我在 vscode-container 存储库中搜索了我可能必须在自定义容器上配置的内容的提示,但我并没有发现任何错误。

自定义容器dockerfile:

FROM mcr.microsoft.com/vscode/devcontainers/universal:1-linux

USER codespace
    
RUN az extension add --name azure-devops

我在标准的 vscode 容器中尝试过,看到了相同的行为。我一定做错了什么。

这些秘密作为一组存储库秘密注册在同一个存储库中,我正在从同一个存储库启动代码空间:

从 repo 启动代码空间

存储在同一存储库设置中的秘密

4

2 回答 2

3

当然,一旦你看到它就很简单!

当您Secrets在 GitHub 设置中打开时,您最终会进入ACTIONS Secrets 页面。由于扩展的设置菜单已滚动到屏幕外,因此隐藏了其他 3 个秘密页面这一事实。

因此,请确保将这些秘密添加到CODESPACES Secrets 页面

使用 Codespaces 机密页面

然后重建代码空间。

于 2021-09-16T07:14:32.857 回答
1

有几个问题可以尝试解除对您的阻止-

  1. 您是否确保您的秘密可用于创建代码空间的存储库?您可以单击“更新”以查看哪些存储库可以访问这些机密。更多信息在这里
  2. 您是否在创建秘密之前创建了此代码空间?秘密仅在代码空间创建或重新启动时注入,因此如果您在创建代码空间后添加这些秘密,则在重新启动后才能在代码空间中访问它们。echo {SECRET_NAME}您可以通过输入并确保输出密码来验证您的密码是否可以在代码空间中访问。

从我所看到的来看,没有什么不对劲的地方,但是一旦您验证了上述两个问题,就可以进一步调查!

于 2021-09-15T22:51:06.343 回答