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-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」を呼び出して、イメージを個別にビルドすることです。

関連情報