docker+jenkins+git持续部署实践

写在前面

以前搭建spring-cloud的时候 看到别人代码里面总有Dockerfile,然后了解到docker容器的概念,玩了两个星期玩不下去了,就放下了,无意间在网上看到一篇文章Docker持续部署,就想着自己也搭建一套玩玩。

流程

网上那篇文章介绍的流程涉及到多个docker镜像,我这里为了入门就简单化了。

这里写图片描述

自动化部署效果就是: 你修改了本地的代码 然后push到git上面,git的webhook功能会给jenkins post一个请求,jenkins接收到请求后,就进行打包部署操作,细节下面会说。

docker部署jenkins

docker 怎么安装使用可以参考以前博客。
docker启动:

sudo route del -net 172.16.0.0 netmask 255.240.0.0
sudo service docker start

镜像地址:https://hub.docker.com/jenkins/
jenkins docker官网有提供image的 直接pull下来就可以了。
jenkisn安装步骤:
拉取镜像

docker pull jenkins:latest

这种方式启动会存储数据,-t 标示以后台模式运行,-p标示容器和宿主服务器之间的开放端口号 -v表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
运行容器

docker run -t  -p 8080:8080 -p 8083:8083 -p 50000:50000  -v /var/jenkins_home:/var/jenkins_home jenkins

运行成功之后,我们输入http://ip:8080/ 就可以访问到了

jenkins的注意事项
  1. 权限问题,具体细节可以百度,我们可以先开发用户注册功能,然后注册一个用户,然后给注册的用户开放所有的权限,匿名的用户权限勾掉。需要注意一点的就是 git的webhok功能也需要权限,所以我们配置安全矩阵的时候要开发匿名用户的访问job的权限,不然git的webhok功能无法使用
    这里写图片描述

  2. 系统配置
    在全局属性里面新增:BUILD_ID=DONTKILLME 这个键值对非常重要,如果不配置 无论你怎么运行java -jar *.jar & 项目都无法后台运行,因为一旦jenkins 部署成功执行完shell 就会把其他的进程都干掉。
    maven jdk都要配置下

  3. 插件安装
    git/Publish over SSH 都要按照然后配置
  4. 项目配置

    这里写图片描述
    这里写图片描述

  5. shell 主要实现kill 原有的java进程和运行新的jar
projectName="dockerjenkins.jar"
#kill
ps -ef | grep -v 'grep' | grep 'dockerjenkins.jar' | awk '{print $2}'| xargs kill -9

ps -ef|grep java

echo "start ${projectName}"

java  -jar $WORKSPACE/target/${projectName}  &
git webhoks

git项目地址:https://github.com/ggj2010/dockerjenkins.git
webhoks配置:
这个url 和jenkins配置项目的地址一致 可以看前面截图触发远程构建
这里写图片描述

参考网址:http://www.thinksaas.cn/group/topic/378471/

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DockerJenkinsGitLab都是用于实现高效部署和管理应用程序的开源工具。 首先,Docker是一种容器化技术,它可以将应用程序及其依赖打包成一个独立的运行环境,被称为容器。通过Docker,我们可以轻松地将Python应用程序及其相关依赖包装成一个镜像,然后在任何支持Docker的环境中进行部署。使用Docker进行Python应用程序的部署可以避免环境配置和依赖安装的问题,确保应用程序在不同的环境中的一致性。 其次,Jenkins是一种持续集成和持续交付工具,它可以自动化构建、测试和部署应用程序。在Jenkins中,我们可以配置一个针对Python应用程序的构建和部署流水线。例如,我们可以设置Jenkins在每次代码提交到GitLab时自动触发构建,然后运行单元测试,最后将应用程序部署Docker容器中。 最后,GitLab是一个Git仓库管理系统,可以帮助团队进行代码版本控制和协作开发。我们可以使用GitLab作为代码仓库,将Python应用程序的源代码存储在其中,并结合Jenkins进行自动化构建和部署GitLab的特点是具有良好的代码管理和协作功能,可以方便地进行多人开发和代码版本控制。 综上所述,使用DockerJenkinsGitLab可以实现Python应用程序的自动化部署持续交付。通过将应用程序打包成Docker镜像,结合Jenkins的构建和部署流水线,以及GitLab的代码管理和协作功能,可以大大简化部署过程和团队合作,并提高开发和发布的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值