Files
amigos-app/Dockerfile

40 lines
700 B
Docker

# Build stage for React app
FROM node:18-alpine AS frontend-build
WORKDIR /app
# Copy frontend package files
COPY package*.json ./
RUN npm ci
# Copy frontend source
COPY index.html vite.config.js ./
COPY src ./src
# Build React app
RUN npm run build
# Production stage
FROM node:18-alpine
WORKDIR /app
# Copy backend files
COPY backend/package*.json ./backend/
WORKDIR /app/backend
RUN npm ci --only=production
# Copy backend source files
COPY backend/server-prod.js ./
# Copy built React app from build stage
COPY --from=frontend-build /app/dist /app/dist
# Go back to app directory
WORKDIR /app
# Expose port
EXPOSE 3001
# Start the backend server
CMD ["node", "backend/server-prod.js"]