Настройка Docker Шаг сборки в бамбуке - PullRequest
0 голосов
/ 23 января 2020

Я в настоящее время отчаиваюсь при попытке настроить шаг сборки docker в Atlassian Bamboo.

Для начала я просто хочу создать конфигурацию сборки, которая запускает образ hello-world в качестве доказательства слияния. Пока что я потерпел неудачу.

Я пытался выполнить шаги на https://confluence.atlassian.com/bamboo0609/using-bamboo/jobs-and-tasks/configuring-tasks/configuring-the-docker-task-in-bamboo, но безрезультатно.

Моя настройка такова: у нас установлен Bamboo на сервере Ubuntu. Я также установил Docker на этом сервере и добавил пользователя bamboo в группу пользователей docker и перезапустил сервер, чтобы убедиться, что изменение разрешения вступает в силу. На этом этапе docker run hello-world работает, когда я запускаю его прямо на сервере. Я также могу подтвердить, что это сервер, на котором работает Bamboo, так как Bamboo отключался всякий раз, когда я перезапускал сервер, на котором я установил Docker.

Затем я добавил к серверу возможность docker ( агент является агентом по умолчанию, поэтому он наследует эту возможность от сервера). Что касается пути docker, я пробовал разные вещи, ни одна из которых не работала (иначе, следующие ошибки остались одинаковыми для каждого из них):

  • /snap/docker (первая папка, которую я найдено при ручном поиске)
  • /usr/bin/docker (рекомендуемый путь, хотя при проверке сервера Ubuntu я быстро обнаружил, что под /usr/bin на диске Ubuntu нет папки docker)
  • /var/snap/docker/common/var-lib-docker (путь, который Docker возвращает в качестве каталога Root, когда я запускаю docker info на сервере Ubuntu)
  • /var/snap/docker (для правильной оценки)

Теперь для бегуна я попробовал два разных подхода.

Сначала я попытался использовать бегун Docker со следующими настройками: Команда: Запустить Docker container Docker image: hello-world

Возвращает следующее сообщение об ошибке:

┊
Error occurred while running Task 'Hello World Docker Test(5)' of type com.atlassian.bamboo.plugins.bamboo-docker-plugin:task.docker.cli.com.atlassian.bamboo.task.TaskException: Failed to execute task
┊
Caused by: com.atlassian.bamboo.docker.DockerException: Error running Docker run command
┊
Caused by: com.atlassian.utils.process.ProcessException: Error executing /snap/docker run --volume /var/atlassian/application-data/bamboo/xml-data/build-dir/CAM-DOC-JOB1:/data --workdir /data --rm hello-world
┊

Вторым было просто запустить оболочку для команды docker run hello-world, который возвратил следующую ошибку:

docker: not found

В этот момент я чувствую, что меня нет ДЕКАК. Все указывает на то, что Bamboo почему-то не находит Docker на сервере, хотя я могу четко подтвердить, что он там есть. Я пробовал разные способы сообщить Bamboo, где найти Docker, но ни один из них не сработал.

Очевидно, что я делаю что-то не так, но не могу понять, что именно. Или, может быть, проблема в совершенно другом направлении? В любом случае, я был бы признателен за любую информацию по этому вопросу.

1 Ответ

0 голосов
/ 23 января 2020

Хорошо, я выяснил, что вызвало это странное поведение.

Проблема заключалась в том, что я установил Docker, используя sudo snap install docker, и, очевидно, установка docker через привязку вызывает проблемы с Bamboo.

Итак, я заставил его работать, выполнив следующие простые шаги:

  1. [Сервер] Uninstalled Snap Docker с использованием sudo snap remove docker
  2. [Сервер] Переустановка Docker с использованием sudo apt install docker.io
  3. [Bamboo] Изменен путь к Docker в разделе Возможности сервера на /usr/bin/docker

После этого сборка образа hello-world завершилась успешно и вывела ожидаемый результат в журнал.

...