这里可以创建自由风格的任务或者Maven任务都可以
源码管理选择Git
打开Gitlab中的测试springboot项目复制项目地址
添加授权
这里采用用户名+密码验证的方式即可
选择当代码提交时自动构建,点击Generate 生成,获得Jenkins的Token
复制url然后打开Gitlab
复制URL和Token 到这个地方点击Add Webhook
点击立即构建即可 拉取Gitlab上的代码到本地
前两次失败是由于Git的路径配置错误,于是用
whereis git
重新查询了下路径,重新配置全局工具
然后测试 我的Gitlab提交是否回同步代码到Jenkins
点击Test push
Jenkins自动进行了第4次构建
至此,GitLab到Jenkins已经全部打通了,接下来看Jenkins的代码如何部署。
点击任务详情页面的Configure
在Build中选择调用顶层Maven构建项目
添加Maven打包命令
clean install -Dmaven.test.skip=true
然后添加shell脚本
# 先删除之前的容器 echo "remobe old container" cid=$(docker ps -a | grep dockerspringboot | awk '{print $1}'| xargs) if [ $cid ] then echo "aaaaaaaaaaaa" echo "ccccccccc" docker rm -f $cid # 删除之前的镜像 echo "romove old image" docker rmi dockerspringboot else echo "no container now" fi # 构建镜像 mvn docker:build # 打印当前镜像 echo "current docker images" docker images | grep dockerspringboot # 启动容器 echo "start container" docker run -p 8010:8010 -d --name myspringboot dockerspringboot # 打印当前容器 echo "current container" docker ps -a | grep dockerspringboot echo "star service success!"
在GitLab中使用push event,然后在Jenkins中可以看到项目自动进入构建状态
查看Jenkins控制台输出
打开浏览器访问我们的网址
大功告成!
关于这套部署环境的改良,可以把GitLab安装放在单独的docker容器中,减少主服务器占用资源。
如果需要做到部署环境与线上环境分离,可以在pom文件中配置docker私库。同时还需要添加两台主机的sshkey。
需要先新增Maven属性
172.0.0.1:50000
然后把${docker.registry}属性作为imageName的前缀
docker.registry/{docker.registry}/{project.groupId}/project.artifactId:{project.artifactId}:{project.version}
最后执行mvn docker:build docker:push
com.spotify docker-maven-plugin 0.4.13 ${project.groupId}/${project.artifactId}:${project.version} ${project.build.outputDirectory} ${project.build.directory} ${project.build.finalName}.jar
在Jenkins中运行docker命令有4中方式
不使用任何Jenkins镜像,直接在宿主机上安装Jenkins、Docker。本文采用的就是此种方式。
不适用官方提供的Jenkins镜像,自己构造一个带有Docker服务的Jenkins镜像。
使用Docker-in-Docker(DinD)方案在Docker容器中运行其他Docker容器。这两个Docker容器是父子关系。DockerHub中i给你提供了Jenkins的DinD镜像。
使用Docker-outside-of-Docker(DooD)方案,在Docker容器中创建宿主机上的Docker容器,这两个容器是兄弟关系。DockerHub中提过了Jenkins的DooD镜像。
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者