35 lines
914 B
Docker
35 lines
914 B
Docker
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"]
|