Переслать сокет агента ssh в сборку Docker - PullRequest
0 голосов
/ 09 апреля 2019

Подключение к серверу, на котором я создаю образы Docker

ssh -A user@myserver

Dockerfile

# syntax=docker/dockerfile:experimental

FROM golang
WORKDIR /go/src/github.com/xxx/xxx
RUN --mount=type=ssh git clone git@github.com:xxx/xxx.git .
...

Изображение здания:

export DOCKER_BUILDKIT=1
docker build --ssh default=$SSH_AUTH_SOCK -t xxx/xxx .
...
#8 1.579 Host key verification failed.
#8 1.579 fatal: Could not read from remote repository.
#8 1.579 
#8 1.579 Please make sure you have the correct access rights
#8 1.579 and the repository exists.
------
rpc error: code = Unknown desc = executor failed running [/bin/sh -c git clone git@github.com:xxx/xxx.git .]: exit code: 128

Чего мне не хватает?

UPDATE

export DOCKER_BUILDKIT=1
docker build --ssh default -t xxx/xxx .

Здание локально дает тот же результат.

Ответы [ 2 ]

2 голосов
/ 07 мая 2019

Возможно, вы уже поняли это или пошли дальше, но в моем случае я пропустил этот шаг при настройке моей сборки:

RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts

оказывается, что ssh с отвращением вскинет рукипроверка агента, если каталог .ssh отсутствует, а затем произойдет сбой на раннем этапе, если вы не импортировали открытый ключ сервера.

0 голосов
/ 09 апреля 2019

Ваше сообщение об ошибке гласит: «Не удалось проверить хост (т. Е.) Образ докера, который вы пытаетесь создать.

Чтобы выполнить git clone via ssh, вам необходимо выполнить эти шаги.

Но, если вы хотите клонировать репо во время сборки образа. Вы можете клонировать, используя https instead of ssh.

git clone https://username:password@github.com/username/repository.git

Итак, ваш Dockerfile должен выглядеть примерно так:

FROM golang
WORKDIR /xxx
RUN git clone https://username:password@github.com/xxx/xxx.git
...

КРЕДИТЫ : Git клон с использованием имени пользователя и пароля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...