Files
cmc_frontend/DockerFile
2025-10-09 23:26:44 +05:30

46 lines
991 B
Plaintext

# Stage 1: Build
FROM node:18-alpine AS builder
# Set working directory
WORKDIR /app
# Copy package files and install dependencies
COPY package.json package-lock.json ./
RUN npm install --production
# Copy the rest of the app
COPY . .
# Pass build-time environment variable
ARG NEXT_PUBLIC_API_URL
ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
# Build the Next.js app
RUN npm run build
# Stage 2: Run
FROM node:18-alpine AS runner
WORKDIR /app
# Copy built app from builder
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/package-lock.json ./package-lock.json
COPY --from=builder /app/next.config.js ./next.config.js
# Install only production dependencies
RUN npm install --production
# Expose port
EXPOSE 3000
# Runtime environment variables
ENV NODE_ENV=production
ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
ENV HOST=0.0.0.0
# Start the app
CMD ["npm", "start"]