【发布时间】:2017-07-14 15:43:53
【问题描述】:
我正在尝试从 Node.js 中的 Google Container Registry (gcr.io) 中获取可用图像及其标签的列表。
我首先使用google-auto-auth 来选择一个范围为https://www.googleapis.com/auth/devstorage.read_write 的令牌,
然后我将该令牌换成gcr.io 令牌,如下所示:
axios.get('https://gcr.io/v2/token?service=gcr.io', {
auth: {
username: '_token',
password: token // token I got from `google-auto-auth`
}
})
然后我尝试使用它来调用v2/_catalog 端点:
axios.get('https://gcr.io/v2/_catalog', {
headers: {
Authorization: `Bearer ${gcrToken}`
}
})
我收到以下错误:
{
errors: [ { code: 'DENIED', message: 'Failed to retrieve projects.' } ]
}
很公平,它必须需要我的项目 ID,但我应该在哪里提供呢?
只是想看看我是否可以让其他任何东西正常工作,我尝试了:
axios.get('https://gcr.io/v2/my-project-id/my-image/tags/list', {
headers: {
Authorization: `Bearer ${gcrToken}`
}
})
我得到以下回复:
{
errors: [
{
code: 'NAME_INVALID',
message: 'Requested repository does not match bearer token resource: my-project-id/my-image'
}
]
}
如何从 gcr.io 读取图像信息?
【问题讨论】:
标签: node.js docker google-cloud-platform docker-registry google-container-registry