我有一个需要构建的 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/