gpt4 book ai didi

docker - 如何隐藏构建参数

转载 作者:行者123 更新时间:2023-12-05 03:40:48 27 4
gpt4 key购买 nike

我最近开始在我的专业项目中广泛使用 docker。我仍在掌握许多细节。

到目前为止,当我尝试从 gitlab 或 github 上的存储库获取软件包时,我采用了获取 token 、将 token 放入某个环境变量并将其传递给 docker build 通过 --build-arg 参数,然后到 git clone 命令。

然而,当我开始将图像推送到 dockerhub 时,我有点震惊地发现在“图像层详细信息”部分中,它还显示了传递给 的环境变量 docker build,也就是我的安全 token 的内容。现在,这不是什么大问题,因为每次推送时我都可以撤销它们并创建新的,但这看起来很麻烦。

有没有一种好方法可以将安全 token 传递给 docker build,这样它们就不会公开出现在任何地方?

最佳答案

首先我想提一下 COPY获取 secret (如果它是一个文件)或使用 ARG (使用 docker build --arg )将始终可见(通过检查图层或使用 docker history <image-id> 检查图像,因此这些选项是不可能的

Docker 现在支持 BuildKit这使您能够在构建期间安装 secret 。一种方法是在您的 Dockerfile 中添加以下语句:

RUN --mount=type=secret,id=mysecret <some_command> 

在构建过程中使用:

export MYSECRET=bigsecret
DOCKER_BUILDKIT=1 docker build --secret id=mysecret,env=MYSECRET -t myimage:latest .

这些 secret 应该在 /run/secrets/<secret_name> 上可用。默认情况下,但您也可以自己指定目的地(检查链接)。

关于docker - 如何隐藏构建参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68013550/

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