Files
frontend/dockerfile
T
2026-03-26 15:05:58 +00:00

32 lines
770 B
Docker

# --- Giai đoạn 1: Build ---
FROM node:25-alpine AS builder
# Cài đặt pnpm
RUN npm install -g pnpm
WORKDIR /app
# Copy file định nghĩa package
COPY package.json pnpm-lock.yaml ./
# Cài đặt dependencies (sử dụng --frozen-lockfile để đảm bảo đúng phiên bản)
RUN pnpm install --prod --frozen-lockfile
# Copy toàn bộ code
COPY . .
# Build Next.js (Yêu cầu next.config.js có output: 'export')
RUN pnpm run build
# --- Giai đoạn 2: Run (Sản phẩm cuối) ---
FROM nginx:alpine
# Xóa file mặc định của nginx (tùy chọn nhưng nên làm)
RUN rm -rf /usr/share/nginx/html/*
# Copy folder out từ giai đoạn builder
COPY --from=builder /app/out /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]