# Use the official Python image as a base image FROM python:3.9 # Set up a new user named "user" with user ID 1000 RUN useradd -m -u 1000 user # Switch to the "user" user USER user # Set home to the user's home directory ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH # Create working directory and set ownership to the user WORKDIR $HOME/app # Copy the requirements file COPY --chown=user ./requirements.txt $HOME/app/ # Install Python dependencies RUN pip install --no-cache-dir --upgrade -r $HOME/app/requirements.txt # Copy the rest of the application code, setting the owner to the user COPY --chown=user . $HOME/app/ # Create the cache directory with appropriate permissions RUN mkdir -p $HOME/app/hf_cache && chmod -R 777 $HOME/app/hf_cache # Copy .env file to the working directory COPY --chown=user .env $HOME/app/ # Expose the port that Gradio will run on EXPOSE 7860 # Run the application CMD ["python", "main.py"]