Files
notify/frontend/Dockerfile
T
Michael DongandClaude Opus 4.6 f34c01afdf Add configurable Docker mirror for China network builds
Add DOCKER_MIRROR build arg to Dockerfiles so base images can be
pulled through a mirror registry (e.g. docker.1ms.run/) when Docker
Hub is unreachable. Defaults to empty (direct Docker Hub).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 13:44:04 +08:00

59 lines
1.2 KiB
Docker

# Build stage
ARG DOCKER_MIRROR=""
FROM ${DOCKER_MIRROR}node:20-alpine AS builder
# Use Aliyun mirrors for Alpine packages
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
WORKDIR /app
# 构建参数(NEXT_PUBLIC_* 变量需要在构建时注入)
ARG NEXT_PUBLIC_API_BASE
ENV NEXT_PUBLIC_API_BASE=${NEXT_PUBLIC_API_BASE}
# Use China npm mirror
RUN npm config set registry https://registry.npmmirror.com
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm ci
# Copy source code
COPY . .
# Ensure public directory exists
RUN mkdir -p public
# Build Next.js app
RUN npm run build
# Production stage
FROM ${DOCKER_MIRROR}node:20-alpine AS runner
# Use Aliyun mirrors for Alpine packages
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
WORKDIR /app
ENV NODE_ENV=production
# Create non-root user
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
# Copy necessary files from builder
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT=3000
ENV HOSTNAME="0.0.0.0"
CMD ["node", "server.js"]