构建Node.js的应用镜像

在现代软件开发中,Docker 已成为构建和部署应用的重要工具。今天,我们将深入探讨如何优化一个 Node.js 应用的 Dockerfile,以支持多版本、多语言,并保持构建环境的干净。

首先,让我们看看我们的基础 Dockerfile:

# 构建阶段:使用 Node.js 16 和 Debian Buster 作为基础镜像
FROM node:16-buster AS build

# 设置工作目录
WORKDIR /app

# 复制所有项目文件到容器中
COPY . .

# 安装依赖并构建应用
RUN npm install
RUN npm run build:app-sit

# 运行阶段:使用更轻量的 Node.js 16 Slim 镜像
FROM node:16-slim
 
# 设置工作目录
WORKDIR /app

# 从构建阶段复制必要的文件
COPY --from=build /app/packages/app/dist ./dist
COPY --from=build /app/packages/common-deploy/server ./server
COPY --from=build /app/packages/common-deploy/package.json .

# 安装生产环境依赖
RUN npm install

# 暴露应用端口
EXPOSE 3000 

# 启动应用
CMD ["npm", "start"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ivwdcwso

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值