MyINPulse/front/Dockerfile
2025-02-08 12:09:18 +01:00

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"]