在 Codespaces 中预配置 Container Registry

Preconfigure Container Registry in Codespaces

我正在尝试在 CodeSpace 中预配置私有容器注册表,以便研讨会参与者可以使用它。 According to the docs it's all pretty straight forward,但我似乎遗漏了一些东西,因为它不起作用,而且文档也不清楚我在接收端需要期待什么。

到目前为止我做了什么:

如果我正确阅读了文档,这应该确保 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 存储库,寻找我可能必须在我的自定义容器上配置的东西的提示,但我没有发现任何错误。

自定义容器docker文件:

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

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

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

这些机密已在与一组存储库机密相同的存储库中注册,我正在从同一存储库启动代码空间:

几个问题来尝试解除封锁 -

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

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

当然看了就很简单!

当您在 GitHub 设置中打开 Secrets 时,您最终会进入 ACTIONS Secrets 页面。并且隐藏了其他 3 个秘密页面,因为展开的设置菜单已滚出屏幕。

所以确保你 add these secrets to the CODESPACES Secrets page:

然后重建代码空间。