Перенаправить сокет агента ssh для сборки докера

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

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 .

Локальное строительство дает тот же результат.

Это может быть очевидным, но это укусило меня несколько раз. Вы настроили ssh-agent на хосте? С ssh-add /path/to/private/key?

James 15.04.2019 22:18

Да, я могу git clone на "myserver", но не в процессе сборки

Jonas 25.04.2019 16:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
2 518
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Чтобы сделать 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. Эта переадресация ключей докера не работает даже на моем локальном хосте.

Jonas 09.04.2019 09:16

Являются ли Outside docker и local host одной и той же машиной или разными?

Thilak 09.04.2019 09:28

Даже на локальном не удалось переслать ключ

Jonas 09.04.2019 09:30

@Jonas Извиняюсь, я не пробовал. но я мог бы найти проект, который может помочь тебе

Thilak 09.04.2019 09:43

Эта новая функция пересылки ключей должна работать, возможно, я что-то упускаю. Хорошо, подождем, может кто подскажет решение.

Jonas 09.04.2019 09:56
Ответ принят как подходящий

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

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

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

Ты мой герой!

Jonas 10.05.2019 10:29

Обратите внимание, чтобы быть безопасным гражданином, мы оба, вероятно, должны сохранить ключевой результат из github, а не сканировать его каждый раз ... отредактирую, когда у меня будет возможность

JRaymond 10.05.2019 21:09

Другие вопросы по теме