Я использую функцию --ssh
docker buildkit, и она отлично работает локально. Я хочу собрать Docker на удаленном сервере, и для этого я использую флаг -A
для пересылки моего локального ключа github, например:
ssh -i "server.pem" -A <user>@<server-ip>
Затем в терминале сервера я запускаю:
ssh -T git@github.com
И я получаю сообщение «Здравствуйте, пользователь», что означает, что переадресация ключей работает нормально.
(На сервере действительно установлен $SSH_AUTH_SOCK
, и я могу git clone
)
Теперь при локальном построении я использую:
DOCKER_BUILDKIT=1 docker build --ssh default=~/.ssh/id_rsa -t myimage:latest .
Что отлично работает.
Но на сервере закрытый ключ не существует в ~ / .ssh / id_rsa. Так как я могу переслать его в docker build? Попробовал это на сервере:
DOCKER_BUILDKIT=1 docker build --ssh default=$SSH_AUTH_SOCK -t myimage:latest .
Но это не работает. Ошибка:
could not parse ssh: [default]: invalid empty ssh agent socket, make sure SSH_AUTH_SOCK is set
Даже если установлено SSH_AUTH_SOCK
Docker версия: 19.03