Spaces:
Running
Running
# Stage 1: Build stage | |
FROM node:22-alpine AS builder | |
# Set working directory | |
WORKDIR /app | |
# Copy package files | |
COPY package*.json ./ | |
# Install dependencies | |
RUN npm ci | |
# Copy source code | |
COPY . . | |
# Build the application | |
RUN npm run build | |
# Stage 2: Production stage | |
FROM nginx:alpine AS production | |
# Copy built application from builder stage | |
COPY --from=builder /app/dist /usr/share/nginx/html | |
# Copy custom nginx configuration | |
COPY nginx.conf /etc/nginx/nginx.conf | |
# Create nginx directories with proper permissions | |
RUN mkdir -p /var/cache/nginx/client_temp \ | |
/var/cache/nginx/proxy_temp \ | |
/var/cache/nginx/fastcgi_temp \ | |
/var/cache/nginx/uwsgi_temp \ | |
/var/cache/nginx/scgi_temp && \ | |
chown -R nginx:nginx /var/cache/nginx && \ | |
chmod -R 755 /var/cache/nginx | |
# Expose port 80 | |
EXPOSE 80 | |
# Start nginx | |
CMD ["nginx", "-g", "daemon off;"] | |