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...

相关推荐
冰暮流星1 分钟前
javascript之回调函数
开发语言·前端·javascript
米丘5 分钟前
Rollup 打包工具
前端
We་ct6 分钟前
LeetCode 74. 搜索二维矩阵:两种高效解题思路
前端·算法·leetcode·矩阵·typescript·二分查找
moneyinto6 分钟前
Three.js 必背核心方法
前端
wuhen_n9 分钟前
Vue3 组件中的图片懒加载与渐进式加载
前端·javascript·vue.js
叫回忆9 分钟前
elpis的npm抽离与发布
前端·javascript
wuhen_n16 分钟前
Vite 构建层面的图片优化:从压缩到转换
前端·javascript·vue.js
hashiqimiya17 分钟前
vue项目组装-路由-文件修改地方
前端·javascript·vue.js
Mike_jia29 分钟前
ChatClaw:5 分钟打造你的个人 AI 智能体
前端
CodeSheep30 分钟前
王自如公开招聘01号员工,这要求有多离谱?
前端·后端·程序员