Проблемы с клонированием репозитория codecommit в Codebuild с помощью ssh

Мне нужно получить файлы из нескольких репозиториев Codecommit в экземпляр Ubuntu Codebuild. Итак, я пытаюсь клонировать репозитории с использованием аутентификации ssh. Я уже настроил ключи ssh и файл конфигурации для экземпляра, проблема возникает, когда я делаю git clone. Я использую expect, чтобы ответить на запрос на первое соединение ssh. Вот мой сценарий ожидания cloneRepo.sh:

#! / usr / bin / ожидать

установить тайм-аут 20

создать git clone ssh: //git-codecommit.us-east-1.amazonaws.com/v1/repos/myrepo / tmp / myrepo

ожидайте "Вы уверены, что хотите продолжить соединение (да / нет)?" {отправь "да \ г"}

ожидать "Разрешение дельт: 100% (* / *), готово." {}

взаимодействовать

Когда я запускаю его в Codebuild, все выглядит нормально:

[Контейнер] Выполнение команды echo "Клонирование репозиториев Git"
Клонирование репозиториев Git

[Контейнер] Запуск команды sudo ./cloneRepo.sh
spawn git clone ssh: //git-codecommit.us-east-1.amazonaws.com/v1/repos/myrepo / tmp / myrepo
Клонирование в ' / tmp / myrepo '...
Подлинность хоста' git-codecommit.us-east-1.amazonaws.com 'не может быть установлена.
Отпечаток ключа RSA: a6: 9c: 7d: bc : 35: f5: d4: 5f: 8b: ba: 6f: c8: bc: d4: 83: 84.
Вы уверены, что хотите продолжить соединение (да / нет)? yes
Предупреждение: «git-codecommit.us-east-1.amazonaws.com» (RSA) постоянно добавлен в список известных хостов.

удаленный:
удаленный: Подсчет объектов: 0
удаленный: Подсчет объектов: 40, готово.
Получение объектов: 2% (1/40)
...
Получение объектов: 100% (40/40)
Получение объектов: 100% (40/40), 6.66 Кбайт | 6,66 МБ / с, готово.
Разрешение дельт: 0% (0/20)
...
Разрешение дельт: 100% (20/20), выполнено.
Разрешение дельт: 100% (20/20)

Однако /tmp/ остается пустым:

[Контейнер] Выполнение команды ls -la / tmp /
всего 8
drwxrwxrwt 2 root root 4096 1 августа 02:04.
drwxr-xr-x 22 root root 4096 1 августа 02:02 ..


Похоже на какую-то ошибку разрешений, но я просто не могу понять это.

Заранее спасибо!


person girafile    schedule 01.08.2018    source источник
comment
включите отладку, добавив exp_internal 1 перед spawn, и посмотрите, что-то не так.   -  person pynexj    schedule 01.08.2018


Ответы (1)


Я исправил проблему, добавив sleep 10 перед interact в сценарии ожидания. Я думаю, что процесс клонирования не завершился полностью, когда завершился ожидаемый скрипт, и Codebuild продолжал работать, несмотря на это. Добавление паузы позволяет завершить клон.

person girafile    schedule 01.08.2018