40 lines
		
	
	
		
			898 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			898 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # pull official base image
 | |
| FROM node AS builder
 | |
| 
 | |
| # set working directory
 | |
| WORKDIR /app
 | |
| 
 | |
| 
 | |
| # install app dependencies
 | |
| #copies package.json and package-lock.json to Docker environment
 | |
| COPY package.json ./
 | |
| 
 | |
| # Installs all node packages
 | |
| RUN npm install 
 | |
| 
 | |
| 
 | |
| # Copies everything over to Docker environment
 | |
| COPY . ./
 | |
| RUN npm run build
 | |
| 
 | |
| #Stage 2
 | |
| #######################################
 | |
| #pull the official nginx:1.19.0 base image
 | |
| FROM nginx
 | |
| 
 | |
| #copies React to the container directory
 | |
| # Set working directory to nginx resources directory
 | |
| WORKDIR /usr/share/nginx/html
 | |
| # Remove default nginx static resources
 | |
| RUN rm -rf ./*
 | |
| RUN apt-get install bash
 | |
| 
 | |
| # Copies configuration files
 | |
| COPY ./default.conf /etc/nginx/conf.d/default.conf
 | |
| 
 | |
| # Copies static resources from builder stage
 | |
| COPY --from=builder /app/build .
 | |
| 
 | |
| # Containers run nginx with global directives and daemon off
 | |
| ENTRYPOINT ["nginx", "-g", "daemon off;"]
 |