Spaces:
Running
Running
File size: 3,597 Bytes
d05f81e 3431712 d05f81e 3431712 d05f81e 3431712 d05f81e 399f98e d05f81e 399f98e d05f81e 3431712 d05f81e 3431712 d05f81e 3431712 d05f81e 3431712 d05f81e 3431712 68e8798 3431712 d05f81e 3431712 d05f81e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | FROM nvidia/cuda:12.9.1-base-ubuntu20.04
ENV DEBIAN_FRONTEND=noninteractive \
TZ=Europe/Paris
# Remove any third-party apt sources to avoid issues with expiring keys.
# Install some basic utilities
RUN rm -f /etc/apt/sources.list.d/*.list && \
apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates sudo git wget procps git-lfs htop vim nano bzip2 libx11-6 build-essential libsndfile-dev software-properties-common \
zip \
unzip \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://get.pnpm.io/install.sh | bash && \
curl -sL https://deb.nodesource.com/setup_24.x | bash && \
apt-get install -y nodejs && \
npm install -g configurable-http-proxy && \
dpkg --add-architecture i386 && \
apt update && \
apt install -y nsis lld clang && \
apt install -y default-jdk openjdk-11-jdk openjdk-17-jdk openjdk-21-jdk default-jre openjdk-11-jre openjdk-17-jre openjdk-21-jre && \
apt install -y wimtools p7zip-full p7zip-rar mkisofs && \
apt install -y aptitude && \
aptitude install -y llvm wine64 wine32 && \
aptitude install -y aria2
# Create a working directory
WORKDIR /app
# Create a non-root user and switch to it
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
# All users can use /home/user as their home directory
ENV HOME=/home/user
RUN mkdir $HOME/.cache $HOME/.config $HOME/.cargo $HOME/.xwin \
&& chmod -R 777 $HOME
# Set up the Conda environment
ENV CONDA_AUTO_UPDATE_CONDA=false \
PATH=$HOME/anaconda/bin:$PATH
RUN curl -sLo ~/anaconda.sh https://repo.anaconda.com/archive/Anaconda3-2025.12-2-Linux-x86_64.sh \
&& chmod +x ~/anaconda.sh \
&& ~/anaconda.sh -b -p ~/anaconda \
&& rm ~/anaconda.sh \
&& conda clean -ya
WORKDIR $HOME/app
#######################################
# Start root user section
#######################################
USER root
# User Debian packages
## Security warning : Potential user code executed as root (build time)
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 mkdir /data && chown user:user /data
#######################################
# End root user section
#######################################
USER user
ENV PATH="$HOME/.cargo/bin:$PATH"
RUN curl -LsSf https://astral.org.cn/uv/install.sh | bash && \
curl -fsSL https://bun.com/install | bash && \
curl -fsSL https://deno.land/install.sh | sh -s - -y && \
curl -fsSL https://pixi.sh/install.sh | bash && \
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s - --default-toolchain beta --profile complete -y && \
rustup target add x86_64-pc-windows-msvc && \
cargo install --locked cargo-xwin && \
cargo xwin cache xwin && \
cargo xwin cache windows-msvc-sysroot
# Python packages
RUN --mount=target=requirements.txt,source=requirements.txt \
pip install --no-cache-dir --upgrade -r requirements.txt
COPY --chown=user start_server.sh $HOME/start_server.sh
RUN chmod +x ../start_server.sh
COPY --chown=user login.html /home/user/anaconda/lib/python3.13/site-packages/jupyter_server/templates/login.html
COPY --chown=user config.toml /home/user/.cargo/config.toml
ENV PYTHONUNBUFFERED=1 \
SYSTEM=spaces \
SHELL=/bin/bash
CMD ["../start_server.sh"]
|