使用 dockercomposer-compose 轉送 ssh 金鑰

使用 dockercomposer-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-compose 命令沒有--ssh標誌,我看不到可以在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 ——事實上,Google搜尋「docker-compose BuildKit」提供了一些指向各種票證的鏈接,所有這些似乎都表明 docker-compose 目前不支援使用 BuildKit。

我嘗試的解決方法(以及在一些票證評論中提到的)是在運行 docker-compose 之前使用呼叫“docker build”的 shell 腳本單獨建立映像。

相關內容