Я выполнил простые шаги, чтобы настроить Jenkins и запустить через докер-контейнер: https://jenkins.io/doc/book/install/#downloading-and-running-jenkins-in-docker
По сути, все, что я сделал, было запустить:
docker run \
--rm \
-d \
-p 8080:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
Теперь, при попытке настроить конвейер внутри Jenkins, он не может найти демон Docker. Ошибка вывода я получаю из конвейера внутри Jenkins:
+ docker pull python:3.6.3
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
script returned exit code 1
Таким образом, это говорит о том, что нет запущенного демона Docker, который может видеть Дженкинс. Опция: -v /var/run/docker.sock:/var/run/docker.sock
при запуске контейнера должна работать, но я не уверен, какие другие шаги по настройке я могу здесь пропустить?
Я запускаю это под macOS 10.13
и моя установка Docker на хосте работает нормально. Существуют некоторые точки конфигурации Jenkins, где можно настроить дополнительную информацию о докере и установки, но, похоже, по умолчанию должно работать?
Пожалуйста, дайте мне знать, если я что-то упустил, чтобы получить доступ Дженкинса к демону Docker.
[ОБНОВИТЬ]
После дополнительных поисков все указывали на разрешения /var/run/docker.sock
в качестве основного источника для такого рода проблем. Глядя на этот смонтированный сокет, кажется, что пользователь jenkins
не является частью нужной группы. Я предполагаю, что отображение формы группы хостов в контейнер выполняется по id, и это просто не совпадает?