如何在 Gitlab CI/CD 变量中自动配置 Docker 配置?

问题描述 投票:0回答:1

我有一些 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
步骤?

docker gitlab
1个回答
0
投票

您可以尝试此 Gitlab CI 文档中的选项 2

© www.soinside.com 2019 - 2024. All rights reserved.