Spaces:
Build error
Build error
| FROM python:3.10.9 | |
| # Set the working directory in the container | |
| WORKDIR /app | |
| # Clone the repository directly into the /app directory | |
| RUN git clone -b staging https://github.com/pvanand07/fastapi-web-server-with-auth.git . | |
| # Run ls to check the contents (for debugging) | |
| RUN ls | |
| # Set environment variable for Matplotlib to use a writable directory | |
| ENV MPLCONFIGDIR=/app/matplotlib | |
| # Create the directory for Matplotlib config and set write permissions | |
| RUN mkdir -p /app/matplotlib && chmod -R 777 /app/matplotlib | |
| # Set environment variable for IPython to use a writable directory | |
| ENV IPYTHONDIR=/app/ipython | |
| # Create the directory for IPython config and set write permissions | |
| RUN mkdir -p /app/ipython && chmod -R 777 /app/ipython | |
| # Create an output folder and give it all permissions | |
| RUN mkdir -p /app/output && chmod -R 2777 /app/output | |
| # Install uv | |
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # Add uv to PATH | |
| ENV PATH="/root/.cargo/bin:${PATH}" | |
| # Create a virtual environment using uv | |
| RUN uv venv | |
| # Activate the virtual environment | |
| ENV PATH="/app/.venv/bin:$PATH" | |
| # Install packages using uv | |
| RUN uv pip install --no-cache-dir -r requirements.txt | |
| # Create a non-root user | |
| RUN useradd -m myuser | |
| # Change the owner of the application directory | |
| RUN chown -R myuser:myuser /app | |
| # Switch to the non-root user | |
| USER myuser | |
| # Create a startup script | |
| RUN echo '#!/bin/bash' > /app/start.sh && \ | |
| echo 'source /app/.venv/bin/activate' >> /app/start.sh && \ | |
| echo 'exec uvicorn main:app --host 0.0.0.0 --port 7860' >> /app/start.sh && \ | |
| chmod +x /app/start.sh | |
| # Use the startup script to run the application | |
| CMD ["/app/start.sh"] |