J7RSYILECL / Dockerfile
puzan789's picture
Update Dockerfile
986f510 verified
# FROM python:3.10-slim
#
# WORKDIR /app
#
# COPY . /app
#
# RUN chmod -R 777 /app
#
# RUN apt-get update && \
# apt-get upgrade -y && \
# apt-get install -y \
# build-essential \
# git \
# cmake \
# poppler-utils \
# ffmpeg \
# libsm6 \
# libxext6 && \
# apt-get clean && \
# rm -rf /var/lib/apt/lists/*
#
# RUN pip install --no-cache-dir nltk && \
# mkdir -p /app/nltk_data && \
# chmod -R 777 /app/nltk_data && \
# python -m nltk.downloader -d /app/nltk_data all
#
# RUN pip install --no-cache-dir --upgrade pip && \
# pip install --no-cache-dir -r requirements.txt
#
# EXPOSE 8000
#
# CMD ["python", "app.py"]
FROM python:3.10-slim
# Create a non-root user and set up environment
RUN useradd -m -u 1000 appuser
ENV HOME=/home/appuser
ENV PATH=$HOME/.local/bin:$PATH
# Switch to the app user's home directory for proper permissions
WORKDIR /app
# Copy app files
COPY . /app
# Adjust ownership for the non-root user
RUN chown -R appuser:appuser /app
# Install system dependencies
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y \
build-essential \
git \
cmake \
poppler-utils \
ffmpeg \
libsm6 \
libxext6 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Switch to non-root user
USER appuser
# Install Python dependencies
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# Set NLTK data directory and download data
ENV NLTK_DATA=/app/nltk_data
RUN mkdir -p $NLTK_DATA && \
python -m nltk.downloader -d $NLTK_DATA all
# Expose the application port
EXPOSE 7860
# Start the application
CMD ["python", "app.py"]