docker-compose编排部署多服务Web应用(python/fastapi, go/gin, nginx, mysql, redis)

本文介绍了如何使用docker-compose部署包含Python FastAPI、Go Gin、Nginx、MySQL和Redis的多服务Web应用。详细讲述了配置文件修改、镜像构建、服务启动以及环境测试,强调了容器编排的重要性,并提供了项目实战经验,适合初学者参考。
摘要由CSDN通过智能技术生成

目前项目涉及到的基础设施有mysql, nginx, redis,服务模块有两个 python/fastapi 和 golang/gin。 如果本地部署的话需要配置的环境有点多,虚拟化(以docker容器形式)是目前(最)流行的部署方法。加上众多编排工具可选择,非常适合Frodo目前多服务的形式。本文先介绍项目的docker部署方法,再以此为例,谈谈docker-compose编排多服务应用的特点和需要注意的地方。希望本文对大家开始实践部署多服务的容器编排应用能有启发~

项目地址: python/fastapi + golang/gin + Vue + docker 基于异步技术栈的个人博客系统

博客地址

Docker部署(推荐)

请确保本地docker及docker-compose可用,以下在docker-compose-1.25.5, MacOS-Majave 15.15版本测试通过。

修改配置文件

需要修改的文件为python_web/config/config.ini.modelgoadmin/config.ini.model,

[global]
debug = True
author = yzk
site_title = Zhikai-Yang Space
host_path = 202.117.47.47:9080 ## 将此配置改为你的环境入口地址,例如本机为localhost

剩余的配置,例如各个服务的端口号,如若出现本地占用的情况,情修改nginx.conf, docker-compose.yml 相应的地方。

build镜像

git clone https://github.com/LouisYZK/Frodo
cd Frodo
sh build.sh

此过程可能需要等待一定时间,过程中需要完成每层镜像的完整构建,如若出现某层因连接超时错误,请检查网络情况或重试。

启动

docker-compose up ## 启动

该命令正常会启动5个server, 当5个server均正常运行才可正常使用,可使用命令docker-compose ps查看是否正常启动,如果存在退出Exited状态的容器,请仔细查看输出的日志和退出的原因。你也可以使用docker ps -a 查看启动或退出的容器,使用docker logs <container_id> 查看日志。

使用

启动后,请先创建一个管理员用户:

docker exec -it $(docker ps | grep frodo/pyweb | awk '{print $1}') python manager.py adduser

随后根据提示输入账密即可看到创建成功的提示。

接下来请访问<host_ip>:<nginx_server_port>/admin, 例如本机环境访问localhost:9080/admin, 用你刚才创建的账密登录,即可进入后台。

进入后台请按照UI提示创建几篇文章(post), 而后访问前台localhost:9080 观察是否生效。

用户侧边栏个性化配置在python_web/config.yaml不必重启docker-compose即可生效。

环境测试

理论上docker与部署环境无依赖关系。目前已经测试的环境有:

  • Ubuntu LTS 16.06
  • MacOS Majave 15
  • Windows …
  • Rowsberry ARM …

欢迎大家部署测试~

虚拟化思路

容器虚拟化编排需要考虑的问题很多,大家可以参考《Kubernetes in Action》这本书看看最主流的kubernetes是如何流程化讲述容器编排问题的。需要考虑的基本上 配置, 网络(通信), 存储是主要方面。而本次使用docker-compose进行编排的也是主要解决这三部分的问题。

容器: 是指使用了linux-namespace, cg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值