我有一个使用OpenFaaS的应用程序。
特别是,我使用faasd,因为该功能将在处理能力较差的设备上运行。我有一个私人注册表,上面有一个"X"函数的映像。我想从faasd中提取这个映像来部署和执行它,但我遇到了一个问题:当我尝试执行操作时,我似乎没有通过身份验证,但我正确地传递了registryAuth令牌。
这里有一个我正在做的事情的例子(如下https://ericstoekl.github.io/faas/operations/managing-images/#deploy-具有私有注册表凭据的功能(
后
<ip_address>:8080/system/functions
标题:
{
"Authorization": "mytoken"
}
正文:
{
"service": "functionName",
"image": "<registry_ip_address>/functions/functionName:<version>",
"envProcess": "/.../myprocess",
"registryAuth": <base64 token obtained from 'user:password'>,
"secrets": [
"mysecret"
]
}
我确认参数都是正确的,我收到这个错误:
"无法提取图像<registry_ip_address>functions/functionName::cannot pull:未能解析引用"lt;registry_ip_address>functions/functionName:":没有为令牌身份验证质询指定范围">
注册表工作得很好,因为如果我尝试用docker以经典的方式下载图像,我就可以提取图像。
提前谢谢!
对于faasd,您必须创建一个凭据文件。
您的普通~/.doker/config.json需要复制到/var/lib/faasd/.docker/config.json
。
https://github.com/openfaas/faasd#a-关于私人回购的注记
关于私人回购/注册的说明
要使用私人图像转发,需要将
~/.docker/config.json
复制到/var/lib/faasd/.docker/config.json.
如果您想设置自己的私人注册表,请参阅本教程。
请注意,在MacOS和Windows上运行
docker login
可能会创建一个空文件,其中您的凭据存储在系统助手中。或者,您可以使用OpenFaaS云引导工具(ofc引导(中的
registry-login
命令:curl -sLSf https://raw.githubusercontent.com/openfaas-incubator/ofc-bootstrap/master/get.sh | sudo sh ofc-bootstrap registry-login --username <your-registry-username> --password-stdin # (then enter your password and hit return)
文件将在
./credentials/
中创建