Сеанс GitLab CI / CD SSH зависает в конвейере - PullRequest
2 голосов
/ 21 сентября 2019

Я использую GitLab CI / CD для создания и отправки образа докера в мой личный реестр GitLab.

Я могу успешно подключиться по SSH к моему серверу из конвейера, но все команды передаются в SSH.сессия не запускается

Я пытаюсь извлечь последний образ из моего реестра контейнеров GitLab, запустить его и выйти из сеанса, чтобы изящно (успешно) передать данные в мой конвейер.

Команда, которую я выполняюis:

ssh -t user@123.456.789 "docker pull registry.gitlab.com/user/project:latest & docker run project:latest"

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

Я пытался использовать формат heredoc для одновременной передачи нескольких команд, но не могу заставить работать одну команду.

Любой совет приветствуется.

1 Ответ

1 голос
/ 21 сентября 2019

Для тестирования вы можете попробовать

ssh user@123.456.789 ls

Для объединения команд избегайте использования '&', из-за которого будет запускать первую команду в фоновом режиме, выступая в качестве разделителя команд.

Попробуйте:

ssh user@123.456.789 "ls; pwd"

Если это сработает, попробуйте две команды docker, разделенные ';'

Попробуйте сdocker run -td (об этом я упомянул здесь ), чтобы отсоединить процесс докера, не требуя tty.

...