Docker 一键部署 NestJS + MySQL 避坑指北

Docker 一键部署 NestJS + MySQL 避坑指北

背景

后端用 NestJS 写完后,我不想在服务器装 Node、MySQL、Redis 一堆环境,目标是「一个命令」上线,回滚也不超过 30 秒。

做法

  1. 写最小 Dockerfile(多阶段构建,只留生产依赖):

    bash 复制代码
    FROM node:20-alpine
    WORKDIR /app
    COPY package*.json ./
    RUN npm ci --omit=dev
    COPY . .
    EXPOSE 3001
    CMD ["node","index.js"]
  2. docker-compose.yml 把 NestJS 和 MySQL 8 编排在一起:

    yaml 复制代码
    services:
      api:
        build: ./node-backend
        ports: ["3001:3001"]
        depends_on: [mysql]
      mysql:
        image: mysql:8
        environment: { MYSQL_ROOT_PASSWORD: root }
  3. 本地 docker-compose up --build 跑通,再 docker push 到仓库镜像。

结果

  • 镜像 207 MB,服务器 1 核 2 G 即可跑
  • docker-compose down && up 30 秒完成回滚
  • 同样 Dockerfile 用在 CI,GitHub Actions 自动部署。

源码/Compose 文件
github.com/web-code-hu...

Docker Compose: github.com/web-code-hu...

相关推荐
小邓吖10 小时前
自己做了一个工具网站
前端·分布式·后端·中间件·架构·golang
南风知我意95710 小时前
【前端面试2】基础面试(杂项)
前端·面试·职场和发展
LJianK111 小时前
BUG: Uncaught Error: [DecimalError] Invalid argument: .0
前端
No Silver Bullet11 小时前
Nginx 内存不足对Web 应用的影响分析
运维·前端·nginx
一起养小猫11 小时前
Flutter for OpenHarmony 实战 表单处理与验证完整指南
android·开发语言·前端·javascript·flutter·harmonyos
weixin_3954489111 小时前
main.c_cursor_0130
前端·网络·算法
C澒11 小时前
SGW 接入层运维实战:配置查看 + 监控分析 + 日志排查
前端·安全·运维开发
德育处主任Pro12 小时前
『NAS』在群晖部署一款太空策略游戏-ogame-vue-ts
前端·vue.js·游戏
ziqi52212 小时前
第二十五天笔记
前端·chrome·笔记
GISer_Jing13 小时前
Memory、Rules、Skills、MCP如何重塑AI编程
前端·人工智能·aigc·ai编程