Spaces:
Running
Running
# # WORKS | |
# # Use the official slim Python 3.9 image | |
# FROM python:3.9-slim | |
# # Install necessary build dependencies | |
# RUN apt-get update && apt-get install -y build-essential python3-dev libffi-dev && apt-get clean | |
# # Create a new user with a specific UID | |
# RUN useradd -m -u 1000 user | |
# # Set environment variables | |
# ENV HOME=/home/user \ | |
# PATH=/usr/local/bin:$PATH | |
# # Set the working directory | |
# WORKDIR $HOME/app | |
# # Copy only the requirements file first to leverage Docker's layer caching | |
# COPY --chown=user requirements.txt $HOME/app/requirements.txt | |
# # Install dependencies | |
# RUN pip install --no-cache-dir --upgrade pip && \ | |
# pip install --no-cache-dir protobuf==3.20.0 && \ | |
# pip install --no-cache-dir -r requirements.txt | |
# # Install chainlit separately | |
# RUN pip install --no-cache-dir chainlit | |
# # Verify chainlit installation and check global binaries | |
# RUN ls /usr/local/bin && pip show chainlit | |
# # Copy the rest of the application files into the container | |
# COPY --chown=user . $HOME/app | |
# # Expose the port that Chainlit will run on | |
# EXPOSE 7860 | |
# # Run Chainlit with the specified command | |
# CMD ["chainlit", "run", "app.py", "--port", "7860"] | |
# Use the official slim Python 3.9 image | |
FROM python:3.9-slim | |
# Install necessary build dependencies | |
RUN apt-get update && apt-get install -y build-essential python3-dev libffi-dev && apt-get clean | |
# Create a new user with a specific UID | |
RUN useradd -m -u 1000 user | |
# Set environment variables | |
ENV HOME=/home/user \ | |
PATH=/home/user/.local/bin:$PATH | |
# Set the working directory | |
WORKDIR $HOME/app | |
# Copy only the requirements file first to leverage Docker's layer caching | |
COPY --chown=user requirements.txt $HOME/app/requirements.txt | |
# Print requirements.txt content for debugging | |
RUN cat requirements.txt | |
# Install dependencies | |
RUN pip install --no-cache-dir --upgrade pip && \ | |
pip install --no-cache-dir -r requirements.txt | |
# Install chainlit explicitly and verify its installation | |
RUN pip install --no-cache-dir chainlit==0.7.700 && \ | |
which chainlit && \ | |
chainlit --version | |
# Verify all installations | |
RUN pip list | |
# Copy the rest of the application files into the container | |
COPY --chown=user . $HOME/app | |
# Expose the port that Chainlit will run on | |
EXPOSE 7860 | |
# Switch to the non-root user | |
USER user | |
# Run Chainlit with the specified command | |
CMD ["chainlit", "run", "app.py", "--port", "7860"] |