2026-01-28 06:16:04 +00:00

31 lines
547 B
Docker

FROM node:18-alpine
WORKDIR /app
# 複製package文件
COPY package*.json ./
# 安裝依賴
RUN npm ci --only=production
# 複製應用代碼
COPY . .
# 創建非root用戶
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
# 更改文件所有權
RUN chown -R nextjs:nodejs /app
USER nextjs
# 暴露端口
EXPOSE 4000
# 健康檢查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:4000/health || exit 1
# 啟動命令
CMD ["npm", "start"]