# Build stage FROM node:20-alpine AS builder WORKDIR /app # Install build dependencies for native modules RUN apk add --no-cache python3 make g++ # Copy package files COPY package.json yarn.lock ./ # Remove any existing node_modules and reinstall for Alpine Linux RUN rm -rf node_modules && yarn install --frozen-lockfile # Copy source code COPY . . # Build the application RUN yarn build # Production stage FROM node:20-alpine WORKDIR /app # Copy built artifacts from builder stage COPY --from=builder /app/.output ./.output COPY --from=builder /app/package.json ./package.json # Expose the port the app runs on EXPOSE 3000 # Set environment variables ENV NUXT_HOST=0.0.0.0 ENV NUXT_PORT=3000 ENV NODE_ENV=production # Start the application CMD ["node", ".output/server/index.mjs"]