# Multi-stage build for Vue 3 portfolio # Build stage FROM node:20-alpine AS build WORKDIR /app # Install dependencies COPY package*.json ./ RUN npm ci # Copy source and build COPY . . RUN npm run build # Runtime stage (no nginx as requested) FROM node:20-alpine AS runtime WORKDIR /app # Install a tiny static file server RUN npm install -g serve@14 # Copy only built assets COPY --from=build /app/dist ./dist # No EXPOSE (internal port 80 via serve) CMD ["serve", "-s", "dist", "-l", "80"]