修改宿主机的docker权限
chmod 777 /var/run/docker.sock
安装
docker run -p 8380:8080 -p 50000:50000 --network=network_172_18 -u root -v /var/run/docker.sock:/var/run/docker.sock -v /Users/kevinmeng/jenkins_home:/var/jenkins_home --restart=always --privileged=true --name=jenkins jenkinsci/blueocean
第一次登录时,需要管理员密码
docker logs jenkins
查看日志获得密码即可。
安装默认插件
设置管理员密码
Jenkins全局工具配置
进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址
JDK环境安装
Maven环境安装
安装Jenkins对应Maven插件
找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本
插件名称 Maven Integration
因为我们一般在本地安装jenkins而不是在生产环境中,所以建议做个host域名映射,例如修改host文件,添加一行:
127.0.0.1 jenkins.fitit100.com
这样我们就可以通过jenkins.fitit100.com:8380访问jenkins了。
下面以一个springboot项目为例子,来演示如何构建docker镜像,并推送到阿里云测试服务器,并在阿里云测试服务器中启动容器。首先新建一个简单的springboot java web项目,在项目跟目录中新建一个dockerfile文件,内容如下:
FROM openjdk:8-jdk-alpine VOLUME /tmp COPY target/szzgj-user.jar szzgj-user.jar EXPOSE 8100 #这里启用测试环境的配置文件,当然可以不加--spring.profiles.active=test参数,而是在docker run命令里面加参数,那样更灵活一些。 ENTRYPOINT ["java","-jar","szzgj-user.jar","--spring.profiles.active=test","-c"]
在jenkins中新建一个maven项目。如下图:
设置git代码库连接
设置触发条件
maven build设置
这里的username和password是阿里云docker的部署用户名和密码,不是登录用户名和密码哦。
docker镜像构建成功并推送到阿里云后,运行脚本删除旧版容器,并启动新版容器。
代码如下:
docker login --username=xxxx --password=xxxx registry.cn-shanghai.aliyuncs.com
docker pull registry.cn-shanghai.aliyuncs.com/szzgj/xxx:latest
# 删除Docker容器
cid=$(docker ps | grep xxx |awk '{print $1}')
if [ x"$cid" != x ]
then
docker rm -f $cid
fi
docker run --name=szzgj-user --restart=always --network=network_172_19 -d -p 8100:8100 registry.cn-shanghai.aliyuncs.com/szzgj/xxx:latest