前言
本文中,基于Docker Compose实现服务滚动更新。
具体来说,webapp想要从v1.0更新到v2.0,更新过程中服务不能中断,如果v2.0有问题那么就停止更新并回退。
参考文档:
本文中,我们学习使用Compose构建镜像,并拉起容器。
参考文档:
1、创建测试目录
1 | mkdir composetest |
2、在项目目录中创建一个名为app.py的文件,内容为:
1 | import time |
在此示例中,redis是应用程序网络上的redis容器的主机名,使用默认端口6379。
3、创建requirements.txt文件,内容为:
1 | flask |
4、创建Dockerfile,内容为:
1 | FROM python:3.7-alpine |
该文件说明:
5、创建docker-compose.yml,内容为:
1 | version: '3' |
该Compose文件定义了两个服务:Web和Redis。
Web服务从Dockerfile构建镜像,启动后容器在5000端口提供服务,然后将容器端口5000绑定到主机端口15000。
6、使用Compose构建和运行应用
1 | docker-compose up |
7、测试应用
1 | curl http://127.0.0.1:15000 |
1、编辑docker-compose.yml,挂载当前目录到/code
1 | version: '3' |
2、运行应用
1 | docker-compose up |
3、修改app.py
1 | import time |
4、测试应用
1 | curl http://127.0.0.1:15000 |
Alpine Linux是基于musl libc和 busybox 的面向安全的轻量级Linux发行版。
Alpine的VM镜像大小113M,Alpine的Docker镜像大小只有2M!
Alpine由非商业组织维护的,支持广泛场景的Linux发行版,它特别为资深/重度Linux用户而优化,关注安全,性能和资源效能。
Alpine 镜像可以适用于更多常用场景,并且是一个优秀的可以适用于生产的基础系统/环境。
第一次接触alpine,是使用它跑单测。gitlab设置代码提交后触发单测,而这个单测,可以使用alpine来进行。但是因为时区问题,跑出的单测结果和预期不同。因此,本文以修改Alpine时区为引子,简单学习了解一下Alpine。
PS:与Alpine相似的一个小系统CirrOS的VM镜像大小只有12M,CirrOS的Docker镜像大小只有10M。
《beego入门篇——上、中、下》三篇文章中,记录了beego的基本用法。假设已经完成了beego项目的代码,此时我们需要把项目部署到服务器上,本文就研究一下怎样在CentOS7环境里部署beego服务。