
在 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 腳本單獨建立映像。