# FROM python:3.9 # RUN useradd -m -u 1000 user # USER user # ENV HOME=/home/user \ # PATH=/home/user/.local/bin:$PATH # WORKDIR $HOME/app # COPY --chown=user . $HOME/app # COPY ./requirements.txt ~/app/requirements.txt # RUN pip install -r requirements.txt # COPY . . # CMD ["chainlit", "run", "app.py", "--port", "7860"] # Get a distribution that has uv already installed FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim # Add user-this is the user that will run the app # If you do not set user, the app will run as root (undesirable) RUN useradd -m -u 1000 user USER user # Set the home directory and path ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH # NEW ENV STATEMENT ENV UVICORN_WS_PROTOCOL=websockets # Set the working directory WORKDIR $HOME/app # Copy the app to the container COPY --chown=user . $HOME/app # Install the dependencies RUN uv sync --frozen # Expose the port EXPOSE 7860 # Run the app CMD ["uv", "run", "chainlit", "run", "app.py", "--host", "0.0.0.0", "--port", "7860"]