在 Codespaces 中预配置 Container Registry
Preconfigure Container Registry in Codespaces
我正在尝试在 CodeSpace 中预配置私有容器注册表,以便研讨会参与者可以使用它。 According to the docs it's all pretty straight forward,但我似乎遗漏了一些东西,因为它不起作用,而且文档也不清楚我在接收端需要期待什么。
到目前为止我做了什么:
- 我有一个继承自 universal-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 存储库,寻找我可能必须在我的自定义容器上配置的东西的提示,但我没有发现任何错误。
自定义容器docker文件:
FROM mcr.microsoft.com/vscode/devcontainers/universal:1-linux
USER codespace
RUN az extension add --name azure-devops
我在标准 vscode 容器中尝试过,看到了相同的行为。我一定是做错了什么。
这些机密已在与一组存储库机密相同的存储库中注册,我正在从同一存储库启动代码空间:
几个问题来尝试解除封锁 -
- 您是否确保您的机密可用于您正在创建代码空间的存储库?您可以单击“更新”以查看哪些存储库可以访问这些秘密。 More info here
- 您是否在创建机密之前创建了此代码空间?秘密仅在代码空间创建或重新启动时注入,因此如果您在创建代码空间后添加这些秘密,则只有在重新启动后才能在代码空间中访问它们。您可以通过输入
echo {SECRET_NAME}
并确保输出秘密来验证您的秘密在代码空间中是否可访问。
据我所知,没有什么不对劲的地方,但是一旦您验证了上述两个问题,就可以进一步调查!
当然看了就很简单!
当您在 GitHub 设置中打开 Secrets 时,您最终会进入 ACTIONS Secrets 页面。并且隐藏了其他 3 个秘密页面,因为展开的设置菜单已滚出屏幕。
所以确保你 add these secrets to the CODESPACES Secrets page:
然后重建代码空间。
我正在尝试在 CodeSpace 中预配置私有容器注册表,以便研讨会参与者可以使用它。 According to the docs it's all pretty straight forward,但我似乎遗漏了一些东西,因为它不起作用,而且文档也不清楚我在接收端需要期待什么。
到目前为止我做了什么:
- 我有一个继承自 universal-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 存储库,寻找我可能必须在我的自定义容器上配置的东西的提示,但我没有发现任何错误。
自定义容器docker文件:
FROM mcr.microsoft.com/vscode/devcontainers/universal:1-linux
USER codespace
RUN az extension add --name azure-devops
我在标准 vscode 容器中尝试过,看到了相同的行为。我一定是做错了什么。
这些机密已在与一组存储库机密相同的存储库中注册,我正在从同一存储库启动代码空间:
几个问题来尝试解除封锁 -
- 您是否确保您的机密可用于您正在创建代码空间的存储库?您可以单击“更新”以查看哪些存储库可以访问这些秘密。 More info here
- 您是否在创建机密之前创建了此代码空间?秘密仅在代码空间创建或重新启动时注入,因此如果您在创建代码空间后添加这些秘密,则只有在重新启动后才能在代码空间中访问它们。您可以通过输入
echo {SECRET_NAME}
并确保输出秘密来验证您的秘密在代码空间中是否可访问。
据我所知,没有什么不对劲的地方,但是一旦您验证了上述两个问题,就可以进一步调查!
当然看了就很简单!
当您在 GitHub 设置中打开 Secrets 时,您最终会进入 ACTIONS Secrets 页面。并且隐藏了其他 3 个秘密页面,因为展开的设置菜单已滚出屏幕。
所以确保你 add these secrets to the CODESPACES Secrets page:
然后重建代码空间。