jekins+ docker + ansible 部署django项目

背景和意义

在软件开发过程中,常常会遇到开发环境和生产环境不一致,导致软件部署失败。环境不一致体现在操作系统,软件版本和第三方库版本不一致,为了解决这个问题,考虑使用docker部署软件,将开发环境的代码和docker整体打包上传到docker repositry 部署到生产环境,可以避免环境不一致导致的问题;同时为了简化环境部署,使用jekins + ansible 将代码发布到生产环境

组件建和流程

开发和部署流程如下:

  1. 本地开发django 项目,运行pip3 install pipreqs,生成requirment文件
  2. 代码上传到git
  3. jenkinsfile 定义持续集成和部署步骤,本例中包括1.登录docker registry;2.使用dockerfile将最新代码添加到docker制作成新镜像;3.将新镜像推送到docker registry;4.将最新代码部署到生产环境;
  4. 本项目使用ansible对生产环境进行操作,包括安装必要的包,获取最新镜像和创建新container。

项目链接

https://gitee.com/ethanzhaorenyu/django/tree/prod

优化方向

  • 持续集成中还可以包括软件测试的步骤,才算真正意义上的持续集成;
  • 部署代码和项目代码分开,这样在部署代码更新时,不需要制作新镜像,当然这样也增加了jekinfile的复杂度;
  • 部署docker时,当前流行的方案是使用K8S,也可以考虑添加到持续集成中。

参考资料

《Continuous Delivery with Docker and Jenkins》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值