python django部署docker_Docker+Jenkins+Gitlab+Django应用部署实践

本文介绍了如何利用Docker、Jenkins、Gitlab和Django实现自动化部署流程。当代码推送到Gitlab时,会触发Jenkins构建Docker镜像,然后在Docker主机上部署应用,实现持续集成和持续交付。同时,文章提到了日志存储和邮件通知等辅助功能,以及后续改进方案,如使用云数据库和K8s集群。
摘要由CSDN通过智能技术生成

一、背景介绍

在互联网应用快速更新迭代的大背景下,传统的人工手动或简单脚本已经不能适应此变化,此时Devops为我们提供了良好的解决方案,应用好CI/CD可以大大的方便我们的日常工作,自动化快速的持续集成/持续交付为我们带来了应用开放的更快速度、更好的稳定性和更强的可靠性。

二、拓扑环境

2.1 架构拓扑

如上图实例,简单花了下流程拓扑:

当研发push本地代码到gitlab-server后,webhook自动触发jenkins构建应用

在docker host上部署应用git clone来自gitlabserver源码,并启动应用

前端可以放置lb来做高可用

数据库连接云数据库

可将日志存储在log后期投递到elk实现日志可视化

构建完成邮件通知相关人员(测试或开放)

2.2 系统软件版本

名称

版本Linux系统

CentOS7.3 64位

Docker

1.13

Django

2.0

三、安装部署

3.1 Jenkins安装部署

Jenkins安装部署可参考:jenkins笔记

安装完成后添加Docker目标服务器

配置邮件发送服务器

3.2 Docker安装部署

Docker安装部署及Dockerfile编写可参考:容器Docker详解

3.3 Gitlab安装部署

GitLab安装在公网Linux服务器运行一些命令即可,如果没有公网需要手动修改 /etc/gitlab/gitlab.rb文件的external_url 'http://自己的内网IP'

yum install -y libsemanage-static libsemanage-devel policycoreutils openss

h-server openssh-clients postfix

systemctl enable postfix && systemctl start postfix

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.

0-ce.0.el7.x86_64.rpm

rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm

# 获取公网IP

PUBLICIP=$(curl http://ipv4.icanhazip.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值