
En Docker 18.09+
podemos utilizar el siguiente enfoque para utilizar una clave ssh reenviada al crear una imagen:
# 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>
Luego construiríamos la imagen así:
DOCKER_BUILDKIT=1 docker build --ssh default .
Me gustaría utilizar docker-compose
para lograr esto, pero no parece funcionar. No hay ningún --ssh
indicador para el comando docker-compose y no veo nada que pueda configurar en el docker-compose.yml
archivo para lograrlo.
Respuesta1
La respuesta más votada al momento de escribir esto es incorrecta. Esto funciona bien:
$ docker compose build --ssh default
$ docker compose version
Docker Compose version v2.5.1
Esto requiere que su clave pública sea visible para el agente SSH:
ssh-add -L
Si no, ejecute ssh-add -K
o en macOS ejecute ssh-add --apple-use-keychain
.
Respuesta2
Desafortunadamente, creo que esto no es compatible actualmente, según los comentarios sobre este tema:https://github.com/docker/compose/issues/6358 - de hecho, buscar en Google "docker-compose BuildKit" proporciona algunos enlaces a varios tickets que parecen indicar que el uso de BuildKit no es compatible actualmente con docker-compose.
La solución alternativa que probaría (así como se menciona en algunos de estos comentarios de tickets) es crear las imágenes por separado, con un script de shell que llame "docker build", antes de ejecutar docker-compose.