1- # Copyright (c) 2021 Oracle and/or its affiliates.
1+ # Copyright (c) 2021, 2023 Oracle and/or its affiliates.
22# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
33
44FROM ghcr.io/oracle/oraclelinux:7-slim
@@ -8,18 +8,21 @@ ENV DATASCIENCE_USER datascience
88ENV DATASCIENCE_UID 1000
99ENV HOME /home/$DATASCIENCE_USER
1010ENV DATASCIENCE_INSTALL_DIR /etc/datascience
11- ENV LOGS_DIRECTORY /logs
11+
12+ ARG release=19
13+ ARG update=13
1214
1315RUN \
14- yum -y -q install oracle-release-el7 deltarpm && \
16+ yum -y -q install oracle-release-el7 && \
1517 yum-config-manager --add-repo http://yum.oracle.com/repo/OracleLinux/OL7/developer_EPEL/x86_64 && \
1618 yum-config-manager --enable ol7_optional_latest --enable ol7_addons --enable ol7_software_collections --enable ol7_oracle_instantclient > /dev/null && \
17- yum install -y -q \
18- build-essential \
19+ yum groupinstall -y -q 'Development Tools' && \
20+ yum update -y && \
21+ yum install -y --setopt=skip_missing_names_on_install=False \
1922 bzip2 \
2023 curl \
2124 git \
22- gfortran \
25+ gcc- gfortran \
2326 libcurl-devel \
2427 libxml2-devel \
2528 oracle-instantclient${release}.${update}-basic \
@@ -30,22 +33,20 @@ RUN \
3033 sudo \
3134 unzip \
3235 zip \
33- g ++ \
36+ gcc-c ++ \
3437 wget \
3538 gcc \
36- vim \
37- yum groupinstall -y -q development tools \
3839 && yum clean all \
3940 && rm -rf /var/cache/yum/*
4041
4142 ########################### CUDA INSTALLATION ########################################
4243
43- #Reference: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/centos7/ 10.1/runtime/cudnn7/Dockerfile
44- #Reference: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/centos7/ 10.1/runtime/Dockerfile
45- #Reference: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/centos7/ 10.1/base/Dockerfile
44+ #Reference: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/10.1/centos7 /runtime/cudnn7/Dockerfile
45+ #Reference: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/10.1/centos7 /runtime/Dockerfile
46+ #Reference: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/10.1/centos7 /base/Dockerfile
4647
47- RUN NVIDIA_GPGKEY_SUM=d1be581509378368edeec8c1eb2958702feedf3bc3d17011adbf24efacce4ab5 && \
48- curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80 .pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \
48+ RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \
49+ curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/D42D0685 .pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \
4950 echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict -
5051
5152COPY docker/cuda.repo /etc/yum.repos.d/cuda.repo
@@ -66,7 +67,7 @@ RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \
6667 echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
6768
6869ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
69- ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
70+ ENV LD_LIBRARY_PATH /lib64:/ usr/local/nvidia/lib:/usr/local/nvidia/lib64
7071
7172# nvidia-container-runtime
7273ENV NVIDIA_VISIBLE_DEVICES all
@@ -83,19 +84,14 @@ RUN CUDNN_DOWNLOAD_SUM=7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2
8384 rm cudnn-10.1-linux-x64-v7.6.5.32.tgz && \
8485 ldconfig
8586
86-
8787# setup user
8888RUN \
8989 mkdir -p /home/$DATASCIENCE_USER && \
9090 useradd -m -s /bin/bash -N -u $DATASCIENCE_UID $DATASCIENCE_USER && \
9191 chown -R $DATASCIENCE_USER /home/$DATASCIENCE_USER && \
9292 chown -R $DATASCIENCE_USER:users /usr/local/ && \
9393 touch /etc/sudoers.d/$DATASCIENCE_USER && echo "$DATASCIENCE_USER ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/$DATASCIENCE_USER && \
94- mkdir -p $DATASCIENCE_INSTALL_DIR && chown $DATASCIENCE_USER $DATASCIENCE_INSTALL_DIR && \
95- mkdir -p $LOGS_DIRECTORY && chown -R $DATASCIENCE_USER:users $LOGS_DIRECTORY && \
96- mkdir -p $LOGS_DIRECTORY/harness && chown -R $DATASCIENCE_USER:users $LOGS_DIRECTORY/harness
97- # mkdir -p /home/$DATASCIENCE_USER/condapack
98-
94+ mkdir -p $DATASCIENCE_INSTALL_DIR && chown $DATASCIENCE_USER $DATASCIENCE_INSTALL_DIR
9995
10096RUN mkdir -p /etc/datascience/build
10197RUN mkdir -p $DATASCIENCE_INSTALL_DIR/{pre-build-ds,post-build-ds,pre-run-ds,pre-run-user}
@@ -107,15 +103,13 @@ ENV LANG=$LANG
107103ENV SHELL=/bin/bash
108104
109105# set /opt folder permissions for $DATASCIENCE_USER. Conda is going to live in this folder.
110- RUN chown $DATASCIENCE_USER /opt
106+ RUN chown -R $DATASCIENCE_USER /opt
111107
112108USER $DATASCIENCE_USER
113109WORKDIR /home/datascience
114- RUN curl -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh >> /home/datascience/miniconda.sh \
110+ RUN wget -nv https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /home/datascience/miniconda.sh \
115111 && /bin/bash /home/datascience/miniconda.sh -f -b -p /opt/conda \
116112 && rm /home/datascience/miniconda.sh \
117- && ls /opt/**/* \
118- && /opt/conda/bin/conda install python=3.8 anaconda \
119113 && /opt/conda/bin/conda clean -yaf
120114
121115WORKDIR /
@@ -127,10 +121,8 @@ USER $DATASCIENCE_USER
127121ENV PATH="/opt/conda/bin:${PATH}"
128122WORKDIR /home/datascience
129123
130-
131- #COPY base-env.yaml /opt/base-env.yaml
132- #RUN conda env update -q -n root -f /opt/base-env.yaml && conda clean -yaf && rm -rf /home/datascience/.cache/pip
133-
124+ COPY docker/base-env.yaml /opt/base-env.yaml
125+ RUN conda env update -q -n root -f /opt/base-env.yaml && conda clean -yaf && rm -rf /home/datascience/.cache/pip
134126
135127USER $DATASCIENCE_USER
136128
@@ -142,20 +134,43 @@ RUN conda list
142134
143135USER root
144136
137+ ARG PIP_INDEX_URL
138+
145139############# Setup Conda environment tools ###########################
146140ARG RAND=1
147141
148- RUN pip install conda_pack oci-cli
149-
150142ARG RUN_WORKING_DIR="/home/datascience"
151143WORKDIR $RUN_WORKING_DIR
152144
145+ RUN ln -s /opt/conda/lib/libnvrtc.so.10.0.130 /opt/conda/lib/libnvrtc.so.10 && \
146+ ln -s /opt/conda/lib/libnvrtc-builtins.so.10.0.130 /opt/conda/lib/libnvrtc-builtins.so.10 && \
147+ ln -s /opt/conda/lib/libnvgraph.so.10.0.130 /opt/conda/lib/libnvgraph.so.10 && \
148+ ln -s /opt/conda/lib/libnvblas.so.10.0.130 /opt/conda/lib/libnvblas.so.10 && \
149+ ln -s /opt/conda/lib/libnpps.so.10.0.130 /opt/conda/lib/libnpps.so.10 && \
150+ ln -s /opt/conda/lib/libnppitc.so.10.0.130 /opt/conda/lib/libnppitc.so.10 && \
151+ ln -s /opt/conda/lib/libnppisu.so.10.0.130 /opt/conda/lib/libnppisu.so.10 && \
152+ ln -s /opt/conda/lib/libnppist.so.10.0.130 /opt/conda/lib/libnppist.so.10 && \
153+ ln -s /opt/conda/lib/libnppim.so.10.0.130 /opt/conda/lib/libnppim.so.10 && \
154+ ln -s /opt/conda/lib/libnppig.so.10.0.130 /opt/conda/lib/libnppig.so.10 && \
155+ ln -s /opt/conda/lib/libnppif.so.10.0.130 /opt/conda/lib/libnppif.so.10 && \
156+ ln -s /opt/conda/lib/libnppidei.so.10.0.130 /opt/conda/lib/libnppidei.so.10 && \
157+ ln -s /opt/conda/lib/libnppicom.so.10.0.130 /opt/conda/lib/libnppicom.so.10 && \
158+ ln -s /opt/conda/lib/libnppicc.so.10.0.130 /opt/conda/lib/libnppicc.so.10 && \
159+ ln -s /opt/conda/lib/libnppial.so.10.0.130 /opt/conda/lib/libnppial.so.10 && \
160+ ln -s /opt/conda/lib/libnppc.so.10.0.130 /opt/conda/lib/libnppc.so.10 && \
161+ ln -s /opt/conda/lib/libcusparse.so.10.0.130 /opt/conda/lib/libcusparse.so.10 && \
162+ ln -s /opt/conda/lib/libcusolver.so.10.0.130 /opt/conda/lib/libcusolver.so.10 && \
163+ ln -s /opt/conda/lib/libcurand.so.10.0.130 /opt/conda/lib/libcurand.so.10 && \
164+ ln -s /opt/conda/lib/libcufftw.so.10.0.145 /opt/conda/lib/libcufftw.so.10 && \
165+ ln -s /opt/conda/lib/libcufft.so.10.0.145 /opt/conda/lib/libcufft.so.10 && \
166+ ln -s /opt/conda/lib/libcudart.so.10.0.130 /opt/conda/lib/libcudart.so.10 && \
167+ ln -s /opt/conda/lib/libcublas.so.10.0.130 /opt/conda/lib/libcublas.so.10
168+
169+ ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/opt/conda/lib
170+
153171# clean tmp folder
154172RUN rm -rf /tmp/*
155173
156- #COPY harness.py /etc/datascience/harness.py
157174RUN mkdir -p /etc/datascience/operators
158- # Temporarily removing operators related components
159- # COPY operators/run.py /etc/datascience/operators/run.py
160175
161176USER datascience
0 commit comments