docker - 您可以一次传递多个 Docker BuildKit secret 吗?

标签 docker docker-buildkit

我有一个需要构建的 Docker 镜像,但是为了构建它,我必须使用 AWS 凭证和配置。我已经弄清楚如何传递单个文件作为 secret ;但是,我无法为一个运行命令传递多个 secret 文件。有什么办法可以实现这种情况吗?

我通过这样的凭据: RUN --mount=type=secret,id=aws,target=/root/.aws/credentials npm run build:prepare

我这样构建它: DOCKER_BUILDKIT=1 docker build -t $IMAGE:$TAG --secret id=aws,src=$HOME/.aws/credentials 。

但是,我还需要传递我的 $HOME/.aws/config 文件,如何将其作为 secret 与我的凭证文件一起传递?

最佳答案

我找到了一个解决方案,尽管我不知道这是否是编写具有多个 secret 文件的 docker 构建命令的最简洁的方法。

首先,您必须在 RUN 命令中指定有两个具有不同、唯一 id 和目标的 secret ,如下所示:

RUN --mount=type=secret,id=credentials,target=/root/.aws/credentials \
    --mount=type=secret,id=config,target=/root/.aws/config \
    npm run build:prepare

然后,您可以像这样传递它们:

DOCKER_BUILDKIT=1 docker build \
  -t $IMAGE:$TAG \
  --secret id=credentials,src=$HOME/.aws/credentials \
  --secret id=config,src=$HOME/.aws/config \
  --no-cache .

关于docker - 您可以一次传递多个 Docker BuildKit secret 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73285152/

相关文章:

apache - K8s Nginx 代理未到达 Pod

docker - Dockerfile 中的每一行都会创建一个新层吗?

docker buildkit 在使用远程代理转发时挂载 ssh

docker - 本地计算机上的多个VM(Windows 10)

docker - 如何在 docker-compose 中设置环境变量

docker - Rootless buildkitd 在容器内抛出权限错误

docker - 如何使用 docker-compose 启用 BuildKit?

docker - Kaniko 和 BuildKit/Buildx 有什么区别?

php - 无法在 docker 镜像中找到包