FROM nvidia/cuda:11.3.1-base-ubuntu20.04 ENV DEBIAN_FRONTEND=noninteractive \ TZ=Europe/Paris # Supprimer les sources apt tierces pour éviter les problèmes avec les clés expirées. # Installer quelques utilitaires de base RUN rm -f /etc/apt/sources.list.d/*.list && \ apt-get update && apt-get install -y --no-install-recommends \ curl \ ca-certificates \ wget \ sudo \ git \ git-lfs \ zip \ unzip \ htop \ bzip2 \ libx11-6 \ build-essential \ libsndfile-dev \ software-properties-common \ ffmpeg \ imagemagick \ && rm -rf /var/lib/apt/lists/* RUN sed -i '/ /dev/null && \ gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}' && \ echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null && \ echo 'Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000\n' | tee /etc/apt/preferences.d/mozilla && \ apt-get update && \ apt-get install -y firefox RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ apt-get install -y nodejs && \ npm install -g configurable-http-proxy WORKDIR /app RUN adduser --disabled-password --gecos '' --shell /bin/bash user \ && chown -R user:user /app RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user USER user ENV HOME=/home/user RUN mkdir $HOME/.cache $HOME/.config \ && chmod -R 777 $HOME ENV CONDA_AUTO_UPDATE_CONDA=false \ PATH=$HOME/miniconda/bin:$PATH RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh \ && chmod +x ~/miniconda.sh \ && ~/miniconda.sh -b -p ~/miniconda \ && rm ~/miniconda.sh \ && conda clean -ya WORKDIR $HOME/app USER root RUN --mount=target=/root/packages.txt,source=packages.txt \ apt-get update && \ xargs -r -a /root/packages.txt apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* RUN --mount=target=/root/on_startup.sh,source=on_startup.sh,readwrite \ bash /root/on_startup.sh RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ && rm -rf /var/lib/apt/lists/* RUN pip3 install udocker RUN udocker --allow-root pull jlesage/firefox RUN udocker --allow-root create --name=firefox jlesage/firefox CMD udocker --allow-root run -v /content/tools/firefox:/config -p 5800:5800 firefox && \ ./cloudflared tunnel --url http://localhost:5800 USER user RUN --mount=target=requirements.txt,source=requirements.txt \ pip install --no-cache-dir --upgrade -r requirements.txt COPY --chown=user . $HOME/app RUN chmod +x start_server.sh COPY --chown=user login.html /home/user/miniconda/lib/python3.9/site-packages/jupyter_server/templates/login.html ENV PYTHONUNBUFFERED=1 \ GRADIO_ALLOW_FLAGGING=never \ GRADIO_NUM_PORTS=1 \ GRADIO_SERVER_NAME=0.0.0.0 \ GRADIO_THEME=huggingface \ SYSTEM=spaces \ SHELL=/bin/bash CMD ["./start_server.sh"]