# Use the official Node.js image as the base image | |
FROM node:22-alpine | |
# Set the working directory | |
WORKDIR /app | |
# Install pnpm and serve | |
RUN npm install -g pnpm serve | |
# Install dependencies | |
COPY package.json ./ | |
COPY pnpm-lock.yaml ./ | |
RUN pnpm install | |
# Copy the rest of the application code | |
COPY . . | |
# Build the Vite application | |
RUN pnpm run build | |
# Ensure the correct ownership and permissions | |
RUN chown -R node:node /app | |
# Switch to the non-root 'node' user | |
USER node | |
# Expose the port the app runs on | |
EXPOSE 8080 | |
# Start the production server | |
CMD ["serve", "-s", "dist", "-l", "8080"] | |