FROM node:22-alpine WORKDIR /app # Dynamic build arguments & environment variables ARG SITE_DOMAIN ARG SITE_URL ARG PORT=8080 ENV SITE_DOMAIN=$SITE_DOMAIN ENV SITE_URL=$SITE_URL ENV PORT=$PORT ENV NODE_ENV=production # Install dependencies COPY package*.json ./ RUN npm ci # Copy application source files COPY . . # Build static production assets RUN npm run build # Expose web server port dynamically EXPOSE ${PORT} # Serve site with npm CMD ["npm", "start"]