41 lines
1.0 KiB
Docker
41 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"]
|
|
|