Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
Add Docker configuration with standalone output mode for containerized deployment. Implement texture deletion API with proper error handling and user feedback. Fix skin viewer sizing issues by using explicit dimensions and removing conflicting layout properties. Add captcha ID parameter to registration flow. Improve profile page UX including Yggdrasil password reset display and character card editing controls.
50 lines
864 B
Docker
50 lines
864 B
Docker
# 构建阶段
|
||
FROM node:alpine AS builder
|
||
|
||
# 设置工作目录
|
||
WORKDIR /app
|
||
|
||
# 复制 package 文件
|
||
COPY package*.json ./
|
||
|
||
# 安装所有依赖(包括 devDependencies)
|
||
RUN npm ci
|
||
|
||
# 复制源代码
|
||
COPY . .
|
||
|
||
# 构建应用
|
||
RUN npm run build
|
||
|
||
# 生产阶段
|
||
FROM node:alpine AS runner
|
||
|
||
# 设置工作目录
|
||
WORKDIR /app
|
||
|
||
# 创建非 root 用户
|
||
RUN addgroup --system --gid 1001 nodejs
|
||
RUN adduser --system --uid 1001 nextjs
|
||
|
||
# 复制构建产物(standalone 模式)
|
||
COPY --from=builder /app/public ./public
|
||
COPY --from=builder /app/.next/standalone ./
|
||
COPY --from=builder /app/.next/static ./.next/static
|
||
|
||
# 设置正确的权限
|
||
RUN chown -R nextjs:nodejs /app
|
||
|
||
# 切换到非 root 用户
|
||
USER nextjs
|
||
|
||
# 暴露端口
|
||
EXPOSE 3000
|
||
|
||
# 设置环境变量
|
||
ENV NODE_ENV=production
|
||
ENV PORT=3000
|
||
ENV HOSTNAME="0.0.0.0"
|
||
|
||
# 启动应用
|
||
CMD ["node", "server.js"]
|