germeval2025 / Dockerfile
Christian Rene Thelen
Model moved
125060a
# Use NVIDIA CUDA base image with Python 3.12.9
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
# Set environment variables
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHON_VERSION=3.12.9
# Install system dependencies
RUN apt-get update && apt-get install -y \
software-properties-common \
build-essential \
libssl-dev \
libffi-dev \
libsqlite3-dev \
libreadline-dev \
libbz2-dev \
libncurses5-dev \
libncursesw5-dev \
xz-utils \
tk-dev \
libxml2-dev \
libxmlsec1-dev \
libgdbm-dev \
liblzma-dev \
git \
wget \
curl \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install Python 3.12.9 from source
RUN cd /tmp && \
wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz && \
tar xzf Python-${PYTHON_VERSION}.tgz && \
cd Python-${PYTHON_VERSION} && \
./configure --enable-optimizations --with-ensurepip=install && \
make -j $(nproc) && \
make altinstall && \
cd / && \
rm -rf /tmp/Python-${PYTHON_VERSION}*
# Create symlinks for python3.12
RUN ln -sf /usr/local/bin/python3.12 /usr/bin/python3
RUN ln -sf /usr/local/bin/python3.12 /usr/bin/python
RUN ln -sf /usr/local/bin/pip3.12 /usr/bin/pip
# Upgrade pip
RUN python3 -m pip install --upgrade pip
# Set work directory
WORKDIR /app
# Copy requirements file
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY app.py .
# Create directory for model weights
RUN mkdir -p model
# Set CUDA environment variables
ENV CUDA_DEVICE_ORDER=PCI_BUS_ID
ENV CUDA_VISIBLE_DEVICES=0
# Expose port
EXPOSE 7860
# Create non-root user for security
RUN useradd -m -u 1002 appuser && chown -R appuser:appuser /app
USER appuser
# Command to run the application
CMD ["python", "app.py"]