nex_design/Dockerfile

39 lines
626 B
Docker

# 构建阶段
FROM node:18-alpine AS builder
WORKDIR /app
# 复制 package 文件
COPY package*.json ./
COPY yarn.lock ./
# 安装依赖
RUN yarn install --frozen-lockfile
# 复制源代码
COPY . .
# 构建项目
RUN yarn build
# 生产阶段
FROM node:18-alpine
WORKDIR /app
# 安装 PM2 和 serve
RUN npm install -g pm2 serve
# 从构建阶段复制构建产物
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/ecosystem.config.js ./ecosystem.config.js
# 创建日志目录
RUN mkdir -p logs
# 暴露端口
EXPOSE 3000
# 使用 PM2 启动应用
CMD ["pm2-runtime", "start", "ecosystem.config.js"]