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