@@ -38,7 +38,7 @@ ARG AMDGPU_VERSION=6.2.4
38
38
# Install the ROCm rpms
39
39
# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete
40
40
# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages
41
- # so we are only installing meta packages of rocm
41
+ # so we are only installing meta packages of rocm
42
42
# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models
43
43
RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \
44
44
echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \
@@ -50,8 +50,21 @@ RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \
50
50
echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \
51
51
echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \
52
52
echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \
53
- yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \
54
- yum clean all && rm -rf /var/cache/yum
53
+ # Install ROCm packages in separate steps to better manage disk space
54
+ # First install core ROCm components
55
+ yum install -y --setopt=install_weak_deps=False rocm-core rocm-hip-runtime rocm-hip-sdk && \
56
+ yum clean all && rm -rf /var/cache/yum && \
57
+ # Then install ML components
58
+ yum install -y --setopt=install_weak_deps=False rocm-ml-sdk && \
59
+ yum clean all && rm -rf /var/cache/yum && \
60
+ # Finally install remaining components
61
+ yum install -y --setopt=install_weak_deps=False rocm-opencl-sdk rocm-utils && \
62
+ yum clean all && rm -rf /var/cache/yum && \
63
+ # Remove unnecessary files to save space
64
+ find /opt/rocm-$ROCM_VERSION -name "*.a" -delete && \
65
+ find /opt/rocm-$ROCM_VERSION -name "*.o" -delete && \
66
+ find /opt/rocm-$ROCM_VERSION -type d -name "samples" -exec rm -rf {} + 2>/dev/null || true && \
67
+ find /opt/rocm-$ROCM_VERSION -type d -name "doc" -exec rm -rf {} + 2>/dev/null || true
55
68
56
69
# Restore notebook user workspace
57
70
USER 1001
@@ -60,7 +73,7 @@ WORKDIR /opt/app-root/src
60
73
########################
61
74
# rocm-jupyter-minimal #
62
75
########################
63
- FROM rocm-base AS rocm-jupyter-minimal
76
+ FROM rocm-base AS rocm-jupyter-minimal
64
77
65
78
ARG JUPYTER_REUSABLE_UTILS=jupyter/utils
66
79
ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11
@@ -70,15 +83,15 @@ WORKDIR /opt/app-root/bin
70
83
COPY ${JUPYTER_REUSABLE_UTILS} utils/
71
84
72
85
COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./
73
-
86
+
74
87
WORKDIR /opt/app-root/src
75
88
76
89
ENTRYPOINT ["start-notebook.sh"]
77
90
78
91
############################
79
92
# rocm-jupyter-datascience #
80
93
############################
81
- FROM rocm-jupyter-minimal AS rocm-jupyter-datascience
94
+ FROM rocm-jupyter-minimal AS rocm-jupyter-datascience
82
95
83
96
ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11
84
97
@@ -114,7 +127,7 @@ WORKDIR /opt/app-root/src
114
127
########################
115
128
# rocm-jupyter-pytorch #
116
129
########################
117
- FROM rocm-jupyter-datascience AS rocm-jupyter-pytorch
130
+ FROM rocm-jupyter-datascience AS rocm-jupyter-pytorch
118
131
119
132
ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11
120
133
ARG PYTORCH_SOURCE_CODE=jupyter/rocm/pytorch/ubi9-python-3.11
@@ -135,20 +148,20 @@ COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ${PYTORCH_SOURCE_CODE}/de-vendor-torch.
135
148
136
149
RUN echo "Installing softwares and packages" && \
137
150
micropipenv install && \
138
- rm -f ./Pipfile.lock && \
151
+ rm -f ./Pipfile.lock && \
139
152
# setup path for runtime configuration
140
153
mkdir /opt/app-root/runtimes && \
141
154
# Remove default Elyra runtime-images \
142
- rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \
155
+ rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \
143
156
# Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \
144
157
sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \
145
158
# Disable announcement plugin of jupyterlab \
146
159
jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
147
160
# Apply JupyterLab addons \
148
- /opt/app-root/bin/utils/addons/apply.sh && \
161
+ /opt/app-root/bin/utils/addons/apply.sh && \
149
162
# De-vendor the ROCm libs that are embedded in Pytorch \
150
163
./de-vendor-torch.sh && \
151
- rm ./de-vendor-torch.sh && \
164
+ rm ./de-vendor-torch.sh && \
152
165
# Fix permissions to support pip in Openshift environments \
153
166
chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \
154
167
fix-permissions /opt/app-root -P
@@ -157,4 +170,4 @@ RUN echo "Installing softwares and packages" && \
157
170
# Copy Elyra runtime-images definitions and set the version
158
171
COPY ${DATASCIENCE_SOURCE_CODE}/runtime-images/ /opt/app-root/share/jupyter/metadata/runtime-images/
159
172
160
- WORKDIR /opt/app-root/src
173
+ WORKDIR /opt/app-root/src
0 commit comments