
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
残念ながら、この問題に関するコメントに基づくと、これは現在サポートされていないと思います。参考: docker-compose.github.com/docker-compose/issues/6358 -- 実際、「docker-compose BuildKit」を Google で検索すると、さまざまなチケットへのリンクがいくつか表示されますが、それらはすべて、BuildKit の使用が現在 docker-compose でサポートされていないという事実を示しているようです。
私が試す回避策は (チケットのコメントのいくつかにも記載されていますが)、docker-compose を実行する前に、シェル スクリプトで「docker build」を呼び出して、イメージを個別にビルドすることです。