我正在使用 Hashicorp Nomad 部署存储在需要凭据才能访问的注册表中的 Docker 映像。根据文档,我可以使用该auth
对象来指定用户名和密码,但是凭据必须在我不想要的清单文件中。例如,在 Kubernetes 注册表中,凭证可以存储在机密中并与imagePullSecrets
.
如何使用注册表凭据而不必将它们存储在清单本身中(即 CI 中的环境变量、客户端上的 env 变量、Vault 等秘密存储)?
我正在使用 Hashicorp Nomad 部署存储在需要凭据才能访问的注册表中的 Docker 映像。根据文档,我可以使用该auth
对象来指定用户名和密码,但是凭据必须在我不想要的清单文件中。例如,在 Kubernetes 注册表中,凭证可以存储在机密中并与imagePullSecrets
.
如何使用注册表凭据而不必将它们存储在清单本身中(即 CI 中的环境变量、客户端上的 env 变量、Vault 等秘密存储)?
如果我理解正确,您应该docker login
在每个能够运行 Docker 容器的 Nomad 代理上单独进行操作,或者config.json
在每台机器上使用身份验证令牌进行复制。
但是,要回答书面问题,假设您使用的工具知道如何处理变量,则 env-vars 会起作用。
Nomad 提供原生 Vault 集成。秘密将放置在/local
应用程序下,并且可以在容器入口点脚本的运行时获取,以便环境变量可用。
或者,您可以使用templates
Nomad 规范的功能将consul-template
字符串写入 Docker 守护进程的config.json