FROM node:20-alpine AS development WORKDIR /app ARG VITE_SERVER_URL ARG VITE_API_URL ARG VITE_WS_URL ARG VITE_LIVEKIT_URL ARG VITE_EXCALIDRAW_PATH ENV VITE_SERVER_URL=${VITE_SERVER_URL} ENV VITE_API_URL=${VITE_API_URL} ENV VITE_WS_URL=${VITE_WS_URL} ENV VITE_LIVEKIT_URL=${VITE_LIVEKIT_URL} ENV VITE_EXCALIDRAW_PATH=${VITE_EXCALIDRAW_PATH} ENV NODE_ENV=development ENV HOST=0.0.0.0 ENV CHOKIDAR_USEPOLLING=true COPY package*.json ./ RUN npm install COPY . . # Entrypoint: при volume-монтировании проверяем node_modules, затем запускаем vite RUN echo '#!/bin/sh' > /entrypoint.sh && \ echo 'set -e' >> /entrypoint.sh && \ echo 'if [ ! -d node_modules/vite ] 2>/dev/null; then npm install; fi' >> /entrypoint.sh && \ echo 'exec npx vite --port 3000 --host 0.0.0.0' >> /entrypoint.sh && \ chmod +x /entrypoint.sh EXPOSE 3000 ENTRYPOINT ["/entrypoint.sh"]