上一篇
场景引入:
凌晨3点,你的Node.js应用突然在生产环境崩溃了 💥,日志显示"在我的机器上能跑啊!"——这经典台词让你抓狂,别担心,用Docker把应用和它的依赖环境一起打包成集装箱,从此告别"环境玄学"!
在项目根目录创建Dockerfile
(无后缀名):
# 使用官方Node.js镜像作为基础 FROM node:18-alpine # 设置工作目录 WORKDIR /usr/src/app # 先拷贝依赖文件(利用Docker缓存层加速构建) COPY package*.json ./ # 安装依赖(生产环境去掉devDependencies) RUN npm install --production # 拷贝所有源代码 COPY . . # 暴露端口(和你的Node应用端口一致) EXPOSE 3000 # 启动命令 CMD ["node", "server.js"]
💡 小技巧:
alpine
版本镜像体积更小 COPY
可以加速后续构建 在Dockerfile所在目录执行:
docker build -t my-node-app .
🛑 常见问题:
docker run -p 4000:3000 -d --name node-app my-node-app
🔧 参数解析:
-p 4000:3000
:主机4000端口映射容器3000端口 -d
:后台运行 --name
:给容器起个名字 curl http://localhost:4000 # 或浏览器访问localhost:4000
创建.dockerignore
文件避免拷贝无关文件:
node_modules
.git
.env
*.log
FROM node:18 AS builder WORKDIR /app COPY . . RUN npm install && npm run build FROM node:18-alpine COPY --from=builder /app/dist ./dist COPY --from=builder /app/package.json . RUN npm install --production CMD ["node", "dist/server.js"]
docker run -e "NODE_ENV=production" -e "API_KEY=123" my-node-app
RUN apk add --no-cache tzdata
--user node
--memory 512m
限制内存 🎉 恭喜! 现在你的Node.js应用已经穿上"集装箱盔甲",随时可以乘风破浪了!下次再遇到"我本地好好的"问题,记得微笑着甩出你的Dockerfile~
(本文参考Docker官方文档及Node.js最佳实践,信息截至2025年8月)
本文由 柔晓曼 于2025-08-01发表在【云服务器提供商】,文中图片由(柔晓曼)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/506926.html
发表评论