在做jenkins 和docker 集成的时候,尤其是用docker 和dockerfile 构建新镜像的时候
会遇到jenkins 不能执行docker命令的问题
报错信息:
+ docker build -t appserver .Cannot connect to the Docker daemon. Is the docker daemon running on this host?Build step 'Execute shell' marked build as failureFinished: FAILURE
两个原因:
1,docker-daemon 是真的没有起来,重启下就好了
2,就是jenkins 没有权限执行docker 命令
解决办法就是,把jenkins 加入到docker 组,如果还不行就加入root组
gpasswd -a jenkins root
gpasswd -a jenkins dockerroot
简单,粗暴,有效
jenkins 构建镜像版本并推送到私有仓库里的脚本
echo "FROM harbor.studeylinux.com/alpine-tomcat-java/alpine_jdk7_tomcat7:v1ADD test.txt /home/apache-tomcat7/webapps " > Dockerfileimagesid=`docker images|grep -i superjia/test|awk '{print $3}'`if ! -n "$imagesid";then echo $imagesid "is null"else docker rmi $imagesid -ffidocker build -t harbor.studeylinux.com/superjia/test:v${BUILD_NUMBER} .docker login harbor.studeylinux.com -u dev -p passworddocker push harbor.studeylinux.com/superjia/test:v${BUILD_NUMBER}if docker ps -a|grep -i superjia/test;then docker rm -f dockerfi