使用 docker composer-compose 转发 ssh 密钥

使用 docker composer-compose 转发 ssh 密钥

在 docker 中18.09+我们可以使用以下方法在构建镜像时使用转发的 ssh 密钥:

# syntax=docker/dockerfile:experimental
# example file
FROM node:10.15.3-alpine

RUN apk update && apk add openssh-client git

# use the forwarded ssh key
RUN --mount=type=ssh git clone <repo>

然后我们将像这样构建图像:

DOCKER_BUILDKIT=1 docker build --ssh default .

我想使用docker-compose它来实现这一点,但它似乎不起作用。docker --ssh-compose 命令没有标志,我看不到文件中可以设置的任何内容docker-compose.yml来实现这一点。

答案1

截至撰写本文时,得票最多的答案是错误的。这很好用:

$ docker compose build --ssh default
$ docker compose version                               
Docker Compose version v2.5.1

这相信这需要你的公钥对 SSH 代理可见:

ssh-add -L

如果没有,请运行ssh-add -K或在 macOS 上运行ssh-add --apple-use-keychain

答案2

不幸的是,根据对这个问题的评论,我认为这目前不受支持:https://github.com/docker/compose/issues/6358 ——事实上,谷歌搜索“docker-compose BuildKit”会给出一些指向各种票据的链接,这些链接似乎都指出 docker-compose 目前不支持使用 BuildKit。

我要尝试的解决方法(以及在这些票据评论中提到的)是在运行 docker-compose 之前,使用调用“docker build”的 shell 脚本单独构建图像。

相关内容