文章目录
- 提出问题
- 思考,开发环境的通信流程,以及三个容器之间的通信
- 开发环境截图
- [docker-compose 集群](#docker-compose 集群)
- 结语
提出问题
我虽然艰难的跑通了部署的流程,但是我觉得在整个过程中,环境变量等我写的不合理,都是些硬编码,虽然部署成功了,但是回到开发我又要改代码,我觉得这不对,所以,在企业中是如何让开发和部署,在不动代码的情况下灵活分配端口呢?
大师给我的答案:

其实中心思是环境变量
思考,开发环境的通信流程,以及三个容器之间的通信
开发环境
前端:通过
vite.config中的proxy来代理到后端后端:通过
back-end/manifest/config/config.yaml中的配置文件访问到本地的数据库数据库:本地自己的数据库
部署环境
前端:通过
Caddyfile文件代理到docker环境网后端:还是配置
back-end/manifest/config/config.yaml这个文件,我用的思路是,在封装成docker容器的时候,把给docker的配置复制进去,重命名config数据库:只需要在 docker-compose 中配置一下

虽然没用到变量,但是也可以实现,在不动开发代码的情况下,实现开发能跑,部署也可以。
开发环境截图




docker-compose 集群
集群的话,要先把本地的 mysql 服务停一下,不然端口冲突哦

然后 docker compose up --build -d 把服务集群都运行起来。


前端运行在80端口,所以直接 localhost 就行

可以用命令链接一下容器的 mysql 看看数据
bash
docker ps
docker exec -it todo_database bash
mysql -u gouser -p
# 输入 root 密码后,就能:
#查看数据库列表:
show databases;
#查看表:
use xxx; show tables;
#查询数据:
select * from xxx;

结语
虽然没有用到 env 变量,但是也算是完成了我们的目标,核心的改动就是后端链接数据库的 config,在做成容器的时候复制另一份。
可见 gpt 给的答案只能是参考,还是要多独立思考