在现代软件开发中,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"]
标签:Node,16,app,js,build,镜像,COPY
From: https://blog.csdn.net/u012172506/article/details/143429571