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