使用 dockercomposer-compose 转发 ssh 密钥

Cyc*_*ode 11 ssh forwarding ssh-keys docker

在 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>
Run Code Online (Sandbox Code Playgroud)

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

DOCKER_BUILDKIT=1 docker build --ssh default .
Run Code Online (Sandbox Code Playgroud)

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

小智 2

不幸的是,根据对此问题的评论,我认为目前不支持此功能:https://github.com/docker/compose/issues/6358 - 事实上,谷歌搜索“docker-compose BuildKit”提供了一些指向各种票证的链接所有这些似乎都表明 docker-compose 目前不支持使用 BuildKit。

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

  • 最后我实际上放弃了这个东西,并使用在 github 中创建的 oauth 密钥来代替 `RUN git clone --single-branch --branch $BRANCH https://$OAUTH_TOKEN@&lt;REPO&gt; /src/app` 来构建你只需添加一个 build-arg `OAUTH_TOKEN` - `docker build --build-arg BRANCH=&lt;BRANCH&gt; --build-arg OAUTH_TOKEN=&lt;TOKEN&gt; .`。无论如何,使用实验性功能感觉不太好 =) (2认同)