【DockerCompose】nodejs
# 使用官方 Node.js 映像作為基礎映像
FROM node:18-alpine AS builder
# 設置工作目錄
WORKDIR /app
# 複製 package.json 和 package-lock.json
COPY package.json package-lock.json ./
# 使用 npm ci 來安裝生產環境的依賴,這樣可以確保安裝的依賴版本與 package-lock.json 中一致
RUN npm config set registry http://10.40.137.10:8080/repository/npm_momo/
RUN npm ci
# 複製所有專案文件
COPY . .
# 構建 Next.js 專案
RUN npm run build:uat
# 使用多階段構建,減少最終映像大小
FROM node:18-alpine AS runner
# 設置工作目錄
WORKDIR /app
# 從 builder 階段複製 standalone 輸出
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
# 設置環境變數
ENV NODE_ENV=production
# 暴露端口(Next.js 默認使用 3000 端口)
EXPOSE 3000
# 運行 Next.js 專案
CMD ["node", "server.js"]