docker-compose не работает нормально, если задано командой оболочки задания с jenkins - PullRequest
0 голосов
/ 17 мая 2018

Я установил Jenkins на Ubuntu.Добавлен текущий пользователь в группу Docker:

sudo usermod -aG docker ${USER}

Также добавлен jenkins пользователь в группу Docker:

sudo usermod -aG docker jenkins

Я установил эту команду оболочки в задании Jenkins:

#!/bin/sh

docker-compose up -d --build

Получил консольный вывод от Дженкинса после запуска этого задания:

...
$ /bin/bash /tmp/jenkins1207165068215188667.sh
Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
Build step 'Execute shell' marked build as failure
Finished: FAILURE

Но если я попробую команду docker-compose up -d --build на хосте под пользователем jenkins, это сработает.Почему нельзя работать, используя команду оболочки Дженкинса?

И почему она позволяет мне использовать docker-machine?Я пытался создать докер, но драйвер по умолчанию - virtualbox.Так как я использую Ubuntu без GUI, я думаю, что virtualbox не является необходимым.

1 Ответ

0 голосов
/ 17 мая 2018

Вы установили переменную DOCKER_HOST env? Это более или менее то, что делает docker-machine use .... Вам нужно указать докеру, к какому сокету подключаться, и, возможно, есть какой-то .bashrc или аналогичный, который запускается при входе в систему под jenkins, который устанавливает это? Проверьте DOCKER_HOST var, прежде чем запускать docker-compose up -d от имени jenkins, и посмотрите, что это за значение. Тогда вы можете export DOCKER_HOST=... в своем сценарии, когда вы это знаете.

...