Spaces:
Paused
Paused
| FROM python:3.9 | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV PATH="/home/user/.local/bin:$PATH" | |
| WORKDIR /app | |
| ENV PATH="/root/.cargo/bin:${PATH}" | |
| # Install uv for faster package management | |
| RUN pip install --no-cache-dir uv | |
| # Copy requirements first for better caching | |
| COPY requirements.txt . | |
| # Install Python dependencies with Rust support | |
| RUN . $HOME/.cargo/env && uv pip install --system -r requirements.txt | |
| # Copy application code | |
| COPY . . | |
| # Create necessary directories and set permissions | |
| RUN mkdir -p workspace config assets logs .cache/huggingface \ | |
| && chmod -R 755 workspace config assets logs \ | |
| && chown -R 1000:1000 workspace config assets logs .cache | |
| # Set environment variables for complete deployment | |
| ENV PYTHONPATH=/app/OpenManus | |
| ENV HF_HOME=/app/OpenManus/.cache/huggingface | |
| ENV GRADIO_SERVER_NAME=0.0.0.0 | |
| ENV GRADIO_SERVER_PORT=7860 | |
| # Cloudflare environment variables (set by user) | |
| ENV CLOUDFLARE_API_TOKEN="" | |
| ENV CLOUDFLARE_ACCOUNT_ID="" | |
| ENV CLOUDFLARE_WORKER_URL="" | |
| ENV CLOUDFLARE_D1_DATABASE_ID="" | |
| ENV CLOUDFLARE_R2_BUCKET_NAME="" | |
| ENV CLOUDFLARE_KV_NAMESPACE_ID="" | |
| # HuggingFace environment variables | |
| ENV HF_TOKEN="" | |
| ENV HF_API_BASE="https://api-inference.huggingface.co" | |
| # Application configuration | |
| ENV OPENAI_API_KEY="" | |
| ENV ANTHROPIC_API_KEY="" | |
| ENV LOG_LEVEL="INFO" | |
| # Expose ports | |
| EXPOSE 7860 8000 | |
| # Health check | |
| HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 \ | |
| CMD curl -f http://localhost:7860/ || exit 1 | |
| # Create non-root user for security | |
| RUN useradd -m -u 1000 openmanus && \ | |
| chown -R openmanus:openmanus /app/OpenManus | |
| USER openmanus | |
| # Default command for complete production deployment | |
| CMD ["python", "app_production.py"] | |