gpt4 book ai didi

docker - gitlab-runner exec docker - 注入(inject) gpg key

转载 作者:行者123 更新时间:2023-12-02 18:53:32 24 4
gpt4 key购买 nike

我需要运行 gitlab-runner在本地使用 exec命令和 docker 执行器。

docker executor 将项目克隆到容器中,所以我从一张白纸开始。为了运行测试,我需要解密某些凭据文件。通常这是在开发机器上使用开发人员的私有(private) gpg key 完成的。但是现在我们在一个容器中,我找不到将开发人员 gpg key 注入(inject)测试容器的方法。

通常将私钥作为环境变量传递是有意义的,但 environment gitlab-runner exec 不支持该功能命令。

如果 gitlab-runner 会容易得多只会将项目文件复制到容器中,而不是重新克隆项目。这样,开发人员将解密主机上的凭据,一切都很好。

我在这里有什么选择?

最佳答案

将环境变量传入测试容器的唯一选择是使用 --env gitlab-runner 的参数.

首先,我们需要将私钥存储在本地机器上的环境变量中。我用了direnv为此,但它也可以手动工作:

export GPG_PRIVATE_KEY="$(gpg --export-secret-keys -a <KEY ID>)"

然后我们可以运行 gitlab-runner像这样:
gitlab-runner exec docker test \
--env GPG_PRIVATE_KEY="$GPG_PRIVATE_KEY" \
--env GPG_PASSPHRASE="$GPG_PASSPHRASE"

请注意,我还在环境变量中传递了密码,因为我需要在容器中使用它来解密我的数据。

现在我可以在 docker 容器中导入 key 。我的置顶 .gitlab-ci.yml看起来像这样:
image: quay.io/mhart/alpine-node:8

before_script:
- apk add --no-cache gnupg
- echo "$GPG_PRIVATE_KEY" | gpg --batch --import --pinentry-mode loopback --no-tty

完成,现在我们可以使用容器内的那个键来做我们想做的事。

当我尝试解密我的数据时,我也遇到了一些问题。 This guide非常有帮助并解决了我的问题。

关于docker - gitlab-runner exec docker - 注入(inject) gpg key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50696869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com