46 lines
967 B
Docker
46 lines
967 B
Docker
FROM node:20-slim
|
|||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Install system dependencies
|
||
|
|
RUN apt-get update && apt-get install -y \
|
||
|
|
wget \
|
||
|
|
curl \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# Copy package files first
|
||
|
|
COPY frontend/package*.json ./
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# Copy frontend source code
|
||
|
|
COPY frontend/ .
|
||
|
|
|
||
|
|
RUN npm install
|
||
|
|
|
||
|
|
# Create startup script in /usr/local/bin
|
||
|
|
RUN echo '#!/bin/bash\n\
|
||
|
|
echo "Waiting for backend..."\n\
|
||
|
|
until curl -f http://backend:8000/health; do\n\
|
||
|
|
echo "Backend not ready - sleeping"\n\
|
||
|
|
sleep 5\n\
|
||
|
|
done\n\
|
||
|
|
\n\
|
||
|
|
echo "Backend is ready - building widget and webclient"\n\
|
||
|
|
cd /app && npm run build:widgetdocker\n\
|
||
|
|
cd /app && npm run build:webclient\n\
|
||
|
|
\n\
|
||
|
|
echo "Starting frontend development server"\n\
|
||
|
|
cd /app && npm run dev -- --host 0.0.0.0 --port 3000' > /usr/local/bin/start.sh
|
||
|
|
|
||
|
|
# Make startup script executable
|
||
|
|
RUN chmod +x /usr/local/bin/start.sh
|
||
|
|
|
||
|
|
# Expose port
|
||
|
|
EXPOSE 3000
|
||
|
|
|
||
|
|
# Start the application in development mode
|
||
|
|
CMD ["/bin/bash", "/usr/local/bin/start.sh"]
|