| FROM python:3.12-slim | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| curl \ | |
| redis-server \ | |
| jq \ | |
| procps \ | |
| sqlite3 \ | |
| unzip \ | |
| ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN useradd -m -u 1000 user | |
| WORKDIR /home/user/app | |
| RUN mkdir -p /mesh && chown -R user:user /home/user /mesh | |
| USER user | |
| ENV HOME=/home/user | |
| ENV PATH="/home/user/.bun/bin:/home/user/.local/bin:${PATH}" | |
| RUN curl -fsSL https://bun.sh/install | bash | |
| COPY --chown=user:user mesh/ ./mesh/ | |
| RUN cd mesh/gateway && bun install | |
| RUN cd mesh/auth && bun install | |
| RUN cd mesh/worker && bun install | |
| COPY --chown=user:user requirements.txt ./ | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| COPY --chown=user:user *.py ./ | |
| COPY --chown=user:user server/ ./server/ | |
| COPY --chown=user:user openenv.yaml ./ | |
| COPY --chown=user:user start.sh ./ | |
| RUN chmod +x ./start.sh | |
| RUN ln -sfn /home/user/app/mesh /mesh | |
| EXPOSE 8000 | |
| ENV ENABLE_WEB_INTERFACE=true | |
| CMD ["./start.sh"] | |