ParentalControl / Dockerfile
GitLab CI
Update game build from GitLab CI
93161aa
# Utiliser Python 3.10 comme base
FROM python:3.10-slim
# Installer poetry
RUN pip install poetry
# Create a non-root user
RUN useradd -m -u 1000 appuser
# Définir le répertoire de travail
WORKDIR /app
# Install system dependencies for PyAudio and basic tools
RUN apt-get update && apt-get install -y \
gcc \
portaudio19-dev \
python3-dev \
libasound2-dev \
libpulse-dev \
libportaudio2 \
libportaudiocpp0 \
libasound2 \
libasound2-data \
wget \
&& rm -rf /var/lib/apt/lists/*
# Add NVIDIA repository and install CUDA
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.0-1_all.deb && \
dpkg -i cuda-keyring_1.0-1_all.deb && \
apt-get update && \
apt-get install -y cuda-toolkit-11-8 cuda-cudart-11-8 libcudnn8 && \
rm -rf /var/lib/apt/lists/* && \
rm cuda-keyring_1.0-1_all.deb
# Copier les fichiers de dépendances
COPY poetry.lock pyproject.toml ./
COPY . .
# Configurer poetry pour ne pas créer un environnement virtuel
RUN poetry config virtualenvs.create false
# Installer les dépendances sans installer le projet lui-même
RUN poetry install --only main --no-interaction --no-ansi --no-root
# Create static directory and set permissions
RUN mkdir -p /app/server/static && \
chown -R appuser:appuser /app
# Switch to non-root user
USER appuser
# Verify permissions after user switch
RUN mkdir -p ~/static
# Exposer le port utilisé par Flask
EXPOSE 7860
# Commande pour démarrer l'application
CMD ["python", "-m", "server"]