ARG BASE_IMAGE=python:3.11.4-slim-bookworm
FROM ${BASE_IMAGE}
# Create app user and set up working directory
RUN useradd --create-home --shell /bin/bash app
RUN mkdir -p /app
# Copy project files
COPY --chown=app:app . /app/jiuwenswarm/
USER app
# Build web
WORKDIR /app/jiuwenswarm/jiuwenswarm/channels/web/frontend
RUN npm install
RUN npm run build
# Install server dependencies
WORKDIR /app/jiuwenswarm
ENV PATH=$PATH:/home/app/.local/bin
RUN sed -i '/--host/ s/default="localhost"/default="0.0.0.0"/' /app/jiuwenswarm/jiuwenswarm/channels/web/app_web.py
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e ".[all]" --no-cache-dir
# Start claw app
EXPOSE 5173
CMD ["jiuwenswarm-start"]