40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# Use the official node image as the base image
 | 
						|
FROM node:20-alpine AS build-stage
 | 
						|
 | 
						|
# Set the working directory
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
# Copy the package.json and package-lock.json files to the working directory
 | 
						|
COPY MyINPulse-front/package*.json ./
 | 
						|
 | 
						|
# Install dependencies
 | 
						|
RUN npm install
 | 
						|
 | 
						|
# Copy the rest of the application code to the working directory
 | 
						|
COPY MyINPulse-front .
 | 
						|
 | 
						|
# Build the Vue.js application for production
 | 
						|
RUN npm run build
 | 
						|
 | 
						|
# Use the official nginx image as the base image for serving the application
 | 
						|
FROM nginx:stable-alpine AS production-stage
 | 
						|
 | 
						|
# Copy the built files from the build-stage to the nginx html directory
 | 
						|
COPY --from=build-stage /app/dist /usr/share/nginx/html
 | 
						|
 | 
						|
# Copy custom nginx configuration files
 | 
						|
COPY nginx/nginx.conf /etc/nginx/nginx.conf
 | 
						|
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
 | 
						|
 | 
						|
# Copy the entry point script
 | 
						|
COPY nginx/start.sh /start.sh
 | 
						|
 | 
						|
# Make the entry point script executable
 | 
						|
RUN chmod +x /start.sh
 | 
						|
 | 
						|
# Expose port 80
 | 
						|
EXPOSE 80
 | 
						|
 | 
						|
# Set the entry point to the shell script
 | 
						|
ENTRYPOINT ["/start.sh"]
 |