我有一些 Docker 组件,我想将凭据(Docker 配置)存储在 CI/CD 设置中的项目变量中。
在 CI/CD 变量设置中,我可以将原始配置文本设置为变量,例如
$DOCKER_AUTH_CONFIG
,例如:
Type: Variable
Key: DOCKER_AUTH_CONFIG
Value: {"auths":{"registry.redhat.io":{"auth":"<base64>"}}}
然后在工作中我必须将配置发送到适当的文件才能使用它:
my_job:
before_script:
- echo "$DOCKER_AUTH_CONFIG" > ~/.docker/config.json
如果可能的话,我正在尝试消除这一步。我尝试将 CI/CD 变量类型更改为文件,并使用它为配置路径引用的 Docker
$DOCKER_CONFIG
变量:
Type: File
Key: DOCKER_CONFIG
Value: {"auths":{"registry.redhat.io":{"auth":"<base64>"}}}
现在创建文件
<project path>/<project>.tmp/DOCKER_CONFIG
,其中 DOCKER_CONFIG
文件的内容是变量值,而 $DOCKER_CONFIG
变量是该文件的路径。
这似乎是正确的解决方案,但事实证明 Docker 假定
$DOCKER_CONFIG
是一个 目录,并且它会在该目录中查找 config.json
文件(例如:<project path>/<project>.tmp/DOCKER_CONFIG/config.json
)。
在 Gitlab 项目变量和 Docker 的 环境变量之间,是否有任何方法可以配置它们,以便任何 Docker 命令将自动具有适当的 Docker 配置,而无需在每个 Docker 作业中执行额外的
echo "$DOCKER_AUTH_CONFIG" > ~/.docker/config.json
步骤?
您可以尝试此 Gitlab CI 文档中的选项 2