Skip to content

Commit 0585a8b

Browse files
committed
back out of balena
1 parent 57e633d commit 0585a8b

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

Dockerfile.balena

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
FROM balenalib/genericx86-64-ext:latest-run-20231106
2+
3+
WORKDIR /usr/src
4+
5+
ENV DEBIAN_FRONTEND noninteractive
6+
7+
# Set some variables to download the proper header modules
8+
ENV VERSION="4.0.23%2Brev1"
9+
ENV BALENA_MACHINE_NAME="genericx86-64-ext"
10+
11+
# Set variables for the Yocto version of the OS
12+
ENV YOCTO_VERSION=5.15.72
13+
ENV YOCTO_KERNEL=${YOCTO_VERSION}-yocto-standard
14+
15+
# Set variables to download proper NVIDIA driver
16+
ENV NVIDIA_DRIVER_VERSION=550.67
17+
ENV NVIDIA_DRIVER=NVIDIA-Linux-x86_64-${NVIDIA_DRIVER_VERSION}
18+
19+
# Install some prereqs
20+
RUN install_packages git wget unzip build-essential libelf-dev bc libssl-dev bison flex software-properties-common pciutils libglvnd-dev
21+
22+
WORKDIR /usr/src/nvidia
23+
24+
# Download and compile NVIDIA driver
25+
RUN \
26+
curl -fsSL -O https://us.download.nvidia.com/XFree86/Linux-x86_64/$NVIDIA_DRIVER_VERSION/$NVIDIA_DRIVER.run && \
27+
chmod +x ./${NVIDIA_DRIVER}.run && \
28+
./${NVIDIA_DRIVER}.run --extract-only && \
29+
./${NVIDIA_DRIVER}/nvidia-installer \
30+
--ui=none \
31+
--no-questions \
32+
--no-drm \
33+
--no-x-check \
34+
--no-systemd \
35+
--no-kernel-module \
36+
--no-distro-scripts \
37+
--install-compat32-libs \
38+
--no-nouveau-check \
39+
--no-rpms \
40+
--no-backup \
41+
--no-abi-note \
42+
--no-check-for-alternate-installs \
43+
--no-libglx-indirect \
44+
--install-libglvnd \
45+
--x-prefix=/tmp/null \
46+
--x-module-path=/tmp/null \
47+
--x-library-path=/tmp/null \
48+
--x-sysconfig-path=/tmp/null \
49+
--skip-depmod \
50+
--expert
51+
52+
53+
# Install CUDA Toolkit for Ubuntu per https://developer.nvidia.com/cuda-downloads
54+
55+
RUN \
56+
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin && \
57+
mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
58+
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb && \
59+
dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb && \
60+
cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/ && \
61+
apt-get update && \
62+
apt-get -y install cuda-toolkit-12-4
63+
64+
ENV PATH="/usr/local/cuda-12.4/bin:$PATH"
65+
ENV LD_LIBRARY_PATH="/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH"
66+
67+
ENV PYTHON_VERSION 3.11
68+
69+
ARG DEBIAN_FRONTEND=noninteractive
70+
71+
RUN apt-get update
72+
RUN apt-get install -y curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev
73+
RUN apt-get install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev tk-dev
74+
RUN apt-get install -y libffi-dev liblzma-dev
75+
76+
ENV PYENV_ROOT $HOME/.pyenv
77+
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
78+
79+
# Install pyenv
80+
RUN set -ex \
81+
&& curl https://pyenv.run | bash \
82+
&& pyenv update \
83+
&& pyenv install $PYTHON_VERSION \
84+
&& pyenv global $PYTHON_VERSION \
85+
&& pyenv rehash
86+
87+
ENV POETRY_HOME='/usr/local'
88+
RUN python -mpip install --upgrade pip
89+
RUN curl -sSL https://install.python-poetry.org | python3 -
90+
COPY . /app
91+
WORKDIR /app
92+
RUN python -mpip install toml
93+
RUN poetry
94+
RUN ./build-bin.sh cuda linux-64 "-DLLAMA_CUBLAS=1"
95+
96+
97+
WORKDIR /usr/src/app
98+
COPY *.sh ./
99+
100+
ENTRYPOINT ["/bin/bash", "/usr/src/app/entry.sh"]
101+
102+
#CMD ["/app/dist/gputopia-worker-cuda-linux-64"]

0 commit comments

Comments
 (0)