uhhjj / Dockerfile
Speedofmastery's picture
Auto-commit: Dockerfile updated
3b536e0
raw
history blame
1.7 kB
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"]