Контейнеры Spinning Docker / ECS из контейнера Jenkins Docker - PullRequest
0 голосов
/ 05 ноября 2018

Я настроил Jenkins, используя Изображение Jenkins Docker в кластере AWS ECS с одним экземпляром EC2.

После первоначальной настройки я попытался запустить hello-world конвейер из документации Jenkins. Я вижу, что получаю "докер: не найден"

Я понимаю, что это потому, что Docker не установлен и недоступен в контейнере Jenkins Docker. Однако у меня есть фундаментальный вопрос о том, стоит ли мне устанавливать Docker внутри работающего контейнера Jenkins Docker (чтобы использовать его в качестве базового образа) или нет. Когда я искал вокруг, я нашел это сообщение в блоге и это SO Ответ .

Я хотел следовать этим советам и попытался смонтировать том /usr/bin/docker и сокет /var/run/docker.sock из экземпляра хоста EC2 / ECS в контейнер Jenkins. После этого, когда я запустил команду docker version для проверки установки, у меня возникают проблемы с библиотекой linux - docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory, которая указывает на то, что установка не прошла успешно.

Вот мои вопросы -

  1. Как запустить конвейеры Jenkins, использующие контейнеры Docker, при запуске Jenkins на основе контейнера Docker? Я хочу иметь возможность извлекать / собирать / запускать Docker-контейнеры, например, например - запустить приведенный выше пример с конвейером hello-world?

Моя конечная цель - создать 2 типа заданий Jenkins, которые выполняют следующее -

Дженкинс Тип работы 1

  1. Проверить хранилище из облака BitBucket
  2. Запуск сценария оболочки для создания образа Docker для проекта Java (возможно, с использованием плагина Maven Jib)
  3. Публикация в AWS ECR. (при условии, что это можно сделать с помощью плагина cloudbees )

Дженкинс Тип работы 2

  1. Извлечь изображение, опубликованное из задания типа 1, из AWS ECR
  2. Создать контейнер из изображения (который по сути запускает Java-приложение)
  3. Сам контейнер может быть запущен на том же кластере Jenkins ECR с подчиненными. Но, опять же, должны ли ведомые устройства иметь установленный докер для извлечения и запуска образа из ECR?

Задавайте эти вопросы после большого количества исследований и не находя ответов. Любое руководство приветствуется. Спасибо.

1 Ответ

0 голосов
/ 05 ноября 2018

Я погуглил ошибку докера, которую вы включили в свое сообщение и нашел это сообщение StackOverflow .

Вам нужно установить libltdl-dev , чтобы все работало правильно

Так как ошибки идентичны, я предлагаю вам попробовать. Согласно сообщению, установите libltdl-dev в контейнер докера.

...