Files
notify/frontend/Dockerfile
Michael Dong 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
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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"]