Подключение к серверу, на котором я создаю образы докеров
ssh -A user@myserver
Докерфайл
# syntax=docker/dockerfile:experimental
FROM golang
WORKDIR /go/src/github.com/xxx/xxx
RUN --mount=type=ssh git clone [email protected]: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 [email protected]:xxx/xxx.git .]: exit code: 128
Что мне не хватает?
export DOCKER_BUILDKIT=1
docker build --ssh default -t xxx/xxx .
Локальное строительство дает тот же результат.
Да, я могу git clone
на "myserver", но не в процессе сборки
В вашем сообщении об ошибке говорится: «Не удалось проверить хост (т.е.) образ докера, который вы пытаетесь создать.
Чтобы сделать git clone via ssh
, вы должны подписаться на эти шаги.
Но если вы хотите клонировать репо во время сборки образа. вы можете клонировать, используя https instead of ssh
.
git clone https://username:[email protected]/username/repository.git
Итак, ваш Dockerfile
должен выглядеть примерно так:
FROM golang
WORKDIR /xxx
RUN git clone https://username:[email protected]/xxx/xxx.git
...
КРЕДИТЫ: Git клонировать, используя имя пользователя и пароль
Вне докера я могу клонировать с ключом ssh. Эта переадресация ключей докера не работает даже на моем локальном хосте.
Являются ли Outside docker
и local host
одной и той же машиной или разными?
Даже на локальном не удалось переслать ключ
@Jonas Извиняюсь, я не пробовал. но я мог бы найти проект, который может помочь тебе
Эта новая функция пересылки ключей должна работать, возможно, я что-то упускаю. Хорошо, подождем, может кто подскажет решение.
Возможно, вы уже поняли это или перешли к этому моменту, но в моем случае я пропустил этот шаг при настройке сборки:
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
Оказывается, ssh с отвращением разводит руками, не проверяя агента, если там нет каталога .ssh, а затем преждевременно завершается сбоем, если вы не импортировали открытый ключ сервера.
Ты мой герой!
Обратите внимание, чтобы быть безопасным гражданином, мы оба, вероятно, должны сохранить ключевой результат из github, а не сканировать его каждый раз ... отредактирую, когда у меня будет возможность
Это может быть очевидным, но это укусило меня несколько раз. Вы настроили ssh-agent на хосте? С
ssh-add /path/to/private/key
?