Files
website-enchun-mgr/apps/frontend/Dockerfile
pkupuk 9c2181f743 feat(frontend): update pages, components and branding
Refresh Astro frontend implementation including new pages (Portfolio, Teams, Services), components, and styling updates.
2026-02-11 11:50:42 +08:00

53 lines
1021 B
Docker

# Use Node.js 18 Alpine for smaller image size
FROM node:18-alpine AS base
# Install pnpm globally
RUN npm install -g pnpm@10.17.0
# Set working directory
WORKDIR /app
# Copy package files
COPY package.json pnpm-lock.yaml ./
# Install dependencies
RUN pnpm install --frozen-lockfile
# Copy source code
COPY . .
# Build the application
RUN pnpm build
# Production stage
FROM node:18-alpine AS production
# Install pnpm globally
RUN npm install -g pnpm@10.17.0
# Set working directory
WORKDIR /app
# Copy package files
COPY package.json pnpm-lock.yaml ./
# Install only production dependencies
RUN pnpm install --frozen-lockfile --prod
# Copy built application from base stage
COPY --from=base /app/dist ./dist
COPY --from=base /app/src ./src
COPY --from=base /app/astro.config.mjs ./
COPY --from=base /app/tailwind.config.mjs ./
# Expose port 4321 (Astro default)
EXPOSE 4321
# Set environment variables
ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=4321
# Start the application
CMD ["pnpm", "preview"]