ci: add docker support
This commit is contained in:
		
							parent
							
								
									223f1e8165
								
							
						
					
					
						commit
						4bd81f47dd
					
				
					 3 changed files with 70 additions and 0 deletions
				
			
		
							
								
								
									
										12
									
								
								.dockerignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.dockerignore
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| node_modules | ||||
| npm-debug.log | ||||
| .git | ||||
| .gitignore | ||||
| README.md | ||||
| .env | ||||
| .nyc_output | ||||
| coverage | ||||
| .nyc_output | ||||
| .vscode | ||||
| .DS_Store | ||||
| dist | ||||
							
								
								
									
										32
									
								
								Dockerfile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								Dockerfile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | |||
| # Multi-stage build for production | ||||
| FROM node:18-alpine AS build-stage | ||||
| 
 | ||||
| # Set working directory | ||||
| WORKDIR /app | ||||
| 
 | ||||
| # Copy package files | ||||
| COPY package*.json ./ | ||||
| 
 | ||||
| # Install dependencies | ||||
| RUN npm ci | ||||
| 
 | ||||
| # Copy source code | ||||
| COPY . . | ||||
| 
 | ||||
| # Build the app | ||||
| RUN npm run build | ||||
| 
 | ||||
| # Production stage | ||||
| FROM nginx:stable-alpine AS production-stage | ||||
| 
 | ||||
| # Copy built assets from build stage | ||||
| COPY --from=build-stage /app/dist /usr/share/nginx/html | ||||
| 
 | ||||
| # Copy custom nginx config | ||||
| COPY nginx.conf /etc/nginx/nginx.conf | ||||
| 
 | ||||
| # Expose port 80 | ||||
| EXPOSE 80 | ||||
| 
 | ||||
| # Start nginx | ||||
| CMD ["nginx", "-g", "daemon off;"] | ||||
							
								
								
									
										26
									
								
								nginx.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								nginx.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| events { | ||||
|     worker_connections 1024; | ||||
| } | ||||
| 
 | ||||
| http { | ||||
|     include       /etc/nginx/mime.types; | ||||
|     default_type  application/octet-stream; | ||||
|      | ||||
|     server { | ||||
|         listen 80; | ||||
|         server_name localhost; | ||||
|         root /usr/share/nginx/html; | ||||
|         index index.html; | ||||
|          | ||||
|         # Handle client-side routing | ||||
|         location / { | ||||
|             try_files $uri $uri/ /index.html; | ||||
|         } | ||||
|          | ||||
|         # Cache static assets | ||||
|         location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { | ||||
|             expires 1y; | ||||
|             add_header Cache-Control "public, immutable"; | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Cipher Vance
						Cipher Vance