1
+ ######################################################
2
+ # mongocli-builder (build stage only, not published) #
3
+ ######################################################
4
+ FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder
5
+
6
+ ARG MONGOCLI_VERSION=2.0.3
7
+
8
+ WORKDIR /tmp/
9
+ RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip
10
+ RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip
11
+ RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \
12
+ CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/
13
+
1
14
####################
2
15
# base #
3
16
####################
@@ -28,6 +41,8 @@ RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/oc
28
41
####################
29
42
FROM base AS cuda-base
30
43
44
+ ARG TARGETARCH
45
+
31
46
ARG CUDA_SOURCE_CODE=cuda
32
47
33
48
# Install CUDA base from:
@@ -39,16 +54,14 @@ ENV NVARCH=x86_64
39
54
ENV NVIDIA_REQUIRE_CUDA "cuda>=12.4 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=525,driver<526 brand=unknown,driver>=525,driver<526 brand=nvidia,driver>=525,driver<526 brand=nvidiartx,driver>=525,driver<526 brand=geforce,driver>=525,driver<526 brand=geforcertx,driver>=525,driver<526 brand=quadro,driver>=525,driver<526 brand=quadrortx,driver>=525,driver<526 brand=titan,driver>=525,driver<526 brand=titanrtx,driver>=525,driver<526 brand=tesla,driver>=535,driver<536 brand=unknown,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=geforce,driver>=535,driver<536 brand=geforcertx,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=titan,driver>=535,driver<536 brand=titanrtx,driver>=535,driver<536"
40
55
ENV NV_CUDA_CUDART_VERSION 12.4.127-1
41
56
42
- COPY ${CUDA_SOURCE_CODE}/cuda.repo-x86_64 /etc/yum.repos.d/cuda.repo
57
+ COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo
43
58
COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE /
44
59
45
60
RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \
46
61
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \
47
62
echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict -
48
63
49
-
50
- ENV CUDA_VERSION 12.4.
51
-
64
+ ENV CUDA_VERSION 12.4.1
52
65
53
66
# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a
54
67
RUN yum upgrade -y && yum install -y \
@@ -137,7 +150,7 @@ RUN yum install -y \
137
150
# ${NV_CUDNN_PACKAGE_DEV} \
138
151
# && yum clean all \
139
152
# && rm -rf /var/cache/yum/*
140
-
153
+
141
154
# # Set this flag so that libraries can find the location of CUDA
142
155
# ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda
143
156
@@ -148,7 +161,7 @@ WORKDIR /opt/app-root/src
148
161
#########################
149
162
# cuda-jupyter-minimal #
150
163
#########################
151
- FROM cuda-base AS cuda-jupyter-minimal
164
+ FROM cuda-base AS cuda-jupyter-minimal
152
165
153
166
ARG JUPYTER_REUSABLE_UTILS=jupyter/utils
154
167
ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11
@@ -158,7 +171,15 @@ WORKDIR /opt/app-root/bin
158
171
COPY ${JUPYTER_REUSABLE_UTILS} utils/
159
172
160
173
COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./
161
-
174
+
175
+ USER 0
176
+
177
+ # Dependencies for PDF export
178
+ RUN ./utils/install_pdf_deps.sh
179
+ ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH"
180
+
181
+ USER 1001
182
+
162
183
WORKDIR /opt/app-root/src
163
184
164
185
ENTRYPOINT ["start-notebook.sh"]
@@ -178,13 +199,11 @@ USER root
178
199
# Install useful OS packages
179
200
RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum
180
201
181
- # Install MongoDB Client, We need a special repo for MongoDB as they do their own distribution
182
- COPY ${DATASCIENCE_SOURCE_CODE}/mongodb-org-6.0.repo-x86_64 /etc/yum.repos.d/mongodb-org-6.0.repo
183
-
184
- RUN dnf install -y mongocli && dnf clean all && rm -rf /var/cache/yum
202
+ # Copy dynamically-linked mongocli built in earlier build stage
203
+ COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/
185
204
186
205
# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution
187
- COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo-x86_64 /etc/yum.repos.d/mssql-2022.repo
206
+ COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo
188
207
189
208
RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum
190
209
@@ -206,7 +225,6 @@ FROM cuda-jupyter-datascience AS cuda-jupyter-pytorch
206
225
ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11
207
226
ARG PYTORCH_SOURCE_CODE=jupyter/pytorch+llmcompressor/ubi9-python-3.11
208
227
209
-
210
228
WORKDIR /opt/app-root/bin
211
229
212
230
LABEL name="odh-notebook-jupyter-cuda-pytorch-ubi9-python-3.11" \
@@ -230,11 +248,13 @@ RUN echo "Installing softwares and packages" && \
230
248
# Remove default Elyra runtime-images \
231
249
rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \
232
250
# Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \
233
- sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \
251
+ sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \
252
+ # copy jupyter configuration
253
+ cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \
234
254
# Disable announcement plugin of jupyterlab \
235
- jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
255
+ jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
236
256
# Apply JupyterLab addons \
237
- /opt/app-root/bin/utils/addons/apply.sh && \
257
+ /opt/app-root/bin/utils/addons/apply.sh && \
238
258
# Fix permissions to support pip in Openshift environments \
239
259
chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \
240
260
fix-permissions /opt/app-root -P
@@ -244,4 +264,3 @@ COPY ${DATASCIENCE_SOURCE_CODE}/runtime-images/ /opt/app-root/share/jupyter/meta
244
264
COPY ${PYTORCH_SOURCE_CODE}/runtime-images/ /opt/app-root/share/jupyter/metadata/runtime-images/
245
265
246
266
WORKDIR /opt/app-root/src
247
-
0 commit comments