BlueOcean - Дженкинс не может получить изображение Docker для окружающей среды
Я пытаюсь использовать изображение Python для создания и тестирования очень простого проекта Python. Но когда я даю имя Docker Image в Jenkinsfile, оно не может получить изображение.
[drone-python_test-jenk-NVHH77CLU5PUMV6UVRK62EARJB3DUVF5FWILYVRZDXOE54RACN2Q] Running shell script
+ docker pull python
Using default tag: latest
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
JenkinsFile
pipeline {
agent {
docker {
image 'python'
}
}
stages {
stage('Build') {
steps {
sh '''virtualenv --no-site-packages .env
'''
sh '.env/bin/pip install -r dev-requirements.txt'
}
}
stage('Test') {
steps {
sh 'flake8 setup.py drone tests'
}
}
stage('test2') {
steps {
sh 'nosetests --with-coverage --cover-package drone -v'
}
}
}
Изменить: Попытка монтирования узла докера с помощью файла docker-compose
version: '2'
services:
jenkins:
image: jenkinsci/blueocean
ports:
- 8888:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: always
также добавил пользователя jenkins
в группу Docker (это правильный пользователь?) Но это все равно не сработало. DroneIO также использовал образы докера для настройки среды, но у него не было этой проблемы.
1 ответ
Я столкнулся с той же проблемой.
Демон Docker внутри контейнера, похоже, не запущен. Я начал, если вручную docker exec -u root jenkins /bin/sh -c 'dockerd >/var/log/docker.log 2>&1 &'
, Вроде работает.
Теперь я пытаюсь создать Dockerfile, который расширяет jenkins/blueocean:latest
с модификацией сценария точки входа для автоматического запуска демона docker.