小言_互联网的博客

Docker+Jenkins+Gitlab+SpringBoot 自动化部署项目

318人阅读  评论(0)

我这边Docker、Jenkins、Gitlab 都已准备完毕,Jenkins和GItlab 都是用Docker起的

我们先进入Jenkins,插件什么的按他推荐的装就可以了,另外使用gitlab,还需要额外安装下面的插件

 

然后我们开始在Jenkins上创建项目

 

 

 

 然后点保存,接下来操作GItlab,点到项目里面

 点击添加webhook ,会提示:Urlis blocked: Requests to the local network are not allowed

Gitlab 10.6 版本以后为了安全,默认不允许向本地网络发送webhook请求,可以修改默认值,我们管理员登录Gitlab

 

 此时重新添加webhook,测试发送请求401,这是Jenkins和GItlab没有建立可信关系,打开Jenkins,创建一个token

 然后在Gitlab添加webhook时候,网址需要改一下格式:用户名:token@Jenkins生成的URL,

比如 admin:11407ac17aa497ee8a14038be68db24425@127.0.0.1:8088/project/Test

 点击保存,测试,提示“Hook executed successfully but returned HTTP 403

这个需要进入Jenkins里面,系统设置取消勾选 Enable authentication for '/project' end-point

然后重新测试,报了个满屏的错误  Hook executed successfully but returned HTTP 500

webhook的地址里面的project要换成job(我看很多都是project,查了才知道高版本的Jenkins有这个问题),修改地址,重新测试,发现终于报200成功了,但是Jenkins那边并没有反应,我的天,这又是什么鬼

查了一通发现地址后面需要追加/build,也就是完整的地址是

admin:11407ac17aa497ee8a14038be68db24425@127.0.0.1:8001/job/Test/build

username:token@ip:port/job/projectName/build

改完之后再次测试,gitlab这边报201,Jenkins也构建成功了

 

 后面我们继续去继续Jenkins里面配置项目

 此处目的是将java项目打包,继续新增构建步骤-执行shell,shell内容需要根据实际情况稍微变更,

还有就是java项目需要先有Dockerfile.


  
  1. cd test/
  2. service_name= "test"
  3. service_prot=8080
  4. tag=latest
  5. #查看镜像id
  6. IID=$(docker images | grep "$service_name" | awk '{print $3}')
  7. echo "IID $IID"
  8. if [ -n "$IID" ]
  9. then
  10. echo "exist $SERVER_NAME image,IID=$IID"
  11. #删除镜像
  12. docker rmi -f $service_name
  13. echo "delete $SERVER_NAME image"
  14. #构建
  15. docker build -t $service_name .
  16. echo "build $SERVER_NAME image"
  17. else
  18. echo "no exist $SERVER_NAME image,build docker"
  19. #构建
  20. docker build -t $service_name .
  21. echo "build $SERVER_NAME image"
  22. fi
  23. #查看容器id
  24. CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
  25. echo "CID $CID"
  26. if [ -n "$CID" ]
  27. then
  28. echo "exist $SERVER_NAME container,CID=$CID"
  29. #停止
  30. docker stop $service_name
  31. #删除容器
  32. docker rm $service_name
  33. else
  34. echo "no exist $SERVER_NAME container"
  35. fi
  36. #启动
  37. docker run -d --name $service_name -p $service_prot: $service_prot $service_name: $tag

然后点击保存,此时提交代码,Jenkins会重新构建,删除旧镜像(如果已存在),创建新镜像并运行,如果还有问题,那就看日志,具体情况具体分析


转载:https://blog.csdn.net/z_xiaoluan/article/details/128327420
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场