279 字
1 分钟
Docker Compose 一键部署:web + api + mysql 全栈上线

编排结构#

services:
web: # React 静态产物 + Node 代理,:80 对外
api: # Go 中台,:8090,只对内
mysql: # MySQL 8.4,数据持久化

一条命令起全栈:

Terminal window
cp .env.docker.example .env # 填 Token 和强密码
docker compose -p vsports up -d --build

我的 DevOps 习惯#

  • 配置与代码分离API_FOOTBALL_TOKENEURO365_DATA_API_KEYMYSQL_PASSWORDADMIN_TOTP_SECRET 全走 .env,仓库里只有 .example,密钥不进 git。
  • 健康检查:web 服务对 http://127.0.0.1/ 做 30 秒间隔探活,挂了自动重启(unless-stopped)。
  • 日志收敛:json-file 驱动限制 max-size: 10mmax-file: 3,磁盘不会被日志打爆。
  • 前端代理:开发期 Vite 把 /api/* 代理到本地 127.0.0.1:8090,生产由 web 镜像内的代理层转发,前后端联调零跨域烦恼。
  • 发版产物releases/ 下按时间戳打 tar 包 + sha256,可回滚、可校验。

安全小结#

上游 Token、数据库密码、后台 TOTP 密钥全部只存在服务端环境里。Nginx 只暴露 80,前端拿到的永远是加工过的业务数据。

三篇连起来就是我的全栈技能:React 前端、Go + MySQL 中台、Docker 运维。代码之外的思考,欢迎来留言板找我聊。