31 lines
		
	
	
		
			500 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			500 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Build stage
 | |
| FROM node:18-alpine AS build
 | |
| 
 | |
| WORKDIR /app
 | |
| 
 | |
| # Copy package files
 | |
| COPY package*.json ./
 | |
| 
 | |
| # Install dependencies
 | |
| RUN npm ci --only=production
 | |
| 
 | |
| # Copy source code
 | |
| COPY . .
 | |
| 
 | |
| # Build the application
 | |
| RUN npm run build
 | |
| 
 | |
| # Production stage
 | |
| FROM nginx:alpine
 | |
| 
 | |
| # Copy built app from build stage
 | |
| COPY --from=build /app/build /usr/share/nginx/html
 | |
| 
 | |
| # Copy nginx configuration
 | |
| COPY nginx.conf /etc/nginx/conf.d/default.conf
 | |
| 
 | |
| # Expose port
 | |
| EXPOSE 80
 | |
| 
 | |
| # Start nginx
 | |
| CMD ["nginx", "-g", "daemon off;"]  |