/
npronnikov
/
ProcessVisualizer
Обзор
Документация
Войти
/
npronnikov
/
ProcessVisualizer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Dockerfile
84 строки
2 KB
Madnick
Update Dockerfile optimization and remove diagram.bpmn
06 фев 2026, 13:45
06 фев 2026, 13:45
a6aefc5
Код
Авторство
О чём код?
# Stage 1: Build backend FROM node:20-alpine AS backend-builder WORKDIR /app/backend # Copy package files COPY backend/package*.json ./ # Install dependencies (including dev dependencies for build) RUN npm ci # Copy source files COPY backend/tsconfig.json ./ COPY backend/src ./src # Build TypeScript RUN npm run build # Stage 2: Build frontend FROM node:20-alpine AS frontend-builder WORKDIR /app/frontend # Copy package files COPY frontend/package*.json ./ # Install dependencies RUN npm ci # Copy source files COPY frontend/tsconfig.json ./ COPY frontend/tsconfig.node.json ./ COPY frontend/vite.config.ts ./ COPY frontend/index.html ./ COPY frontend/public ./public COPY frontend/src ./src # Build frontend RUN npm run build # Stage 3: Final image FROM node:20-alpine # Install Nginx and wget (for healthcheck) RUN apk add --no-cache nginx wget WORKDIR /app # Copy backend package files COPY backend/package*.json ./backend/ # Install only production dependencies for backend WORKDIR /app/backend RUN npm ci --only=production # Copy backend build WORKDIR /app COPY --from=backend-builder /app/backend/dist ./backend/dist # Copy frontend build COPY --from=frontend-builder /app/frontend/dist ./frontend/dist # Copy backend source files needed at runtime (uploads directory structure) COPY backend/uploads ./backend/uploads # Create directories for data and uploads RUN mkdir -p /app/backend/data /app/backend/uploads # Copy Nginx configuration COPY nginx.conf /etc/nginx/nginx.conf # Copy startup script COPY start.sh /app/start.sh RUN chmod +x /app/start.sh # Expose port 80 EXPOSE 80 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost/health || exit 1 # Start script CMD ["/app/start.sh"]