-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathDockerfile_cuda110_cuml2208
56 lines (45 loc) · 2.15 KB
/
Dockerfile_cuda110_cuml2208
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
######## build ###########################################################################
FROM nvidia/cuda:11.0.3-base-ubuntu18.04 as builder
ARG VER_CUDA=11.0
ARG VER_RAPIDS=22.08
ARG CONDA_INSTALLER=Miniconda3-latest-Linux-x86_64.sh
ARG CONDA_ROOT=/opt/miniconda3
ARG PYENV_ROOT=/opt/pyenv
RUN echo building... \
&& cd /tmp/ \
&& mv /etc/apt/sources.list.d /etc/apt/sources.list.d.bak \
&& apt-get update \
&& apt-get install -y wget libxml2 \
&& apt-get clean \
&& wget -q https://repo.anaconda.com/miniconda/$CONDA_INSTALLER \
&& sh $CONDA_INSTALLER -b -p $CONDA_ROOT \
&& $CONDA_ROOT/bin/conda init \
&& $CONDA_ROOT/bin/conda install conda-pack \
&& $CONDA_ROOT/bin/conda create -p $PYENV_ROOT -c rapidsai -c nvidia -c conda-forge python=3.8 cudatoolkit=$VER_CUDA cudf=$VER_RAPIDS cuml=$VER_RAPIDS pynvml hypergbm jupyterlab jupyterlab_widgets ipywidgets hboard hboard-widget \
&& echo "created env: $PYENV_ROOT"
RUN echo packing... \
&& $CONDA_ROOT/bin/conda pack -p $PYENV_ROOT -o $PYENV_ROOT.tar -d $PYENV_ROOT\
&& mkdir /opt/foo \
&& tar xf $PYENV_ROOT.tar -C /opt/foo \
&& echo done
######## install ###########################################################################
FROM nvidia/cuda:11.0.3-base-ubuntu18.04
ARG PYENV_ROOT=/opt/pyenv
ARG DC_ROOT=/opt/datacanvas
COPY --from=builder /opt/foo $PYENV_ROOT
#COPY --from=builder $PYENV_ROOT/pkgs $PYENV_ROOT/pkgs
RUN echo installing... \
&& echo source $PYENV_ROOT/bin/activate >> /root/.bashrc \
&& mkdir -p $DC_ROOT \
&& cp -r $PYENV_ROOT/lib/python3.8/site-packages/hypergbm/examples $DC_ROOT/ \
&& echo "#!/bin/bash\n" > /entrypoint.sh \
&& echo "source $PYENV_ROOT/bin/activate" >> /entrypoint.sh \
&& echo "cd $DC_ROOT" >> /entrypoint.sh \
&& echo "jupyter lab --notebook-dir=$DC_ROOT --ip=0.0.0.0 --port=\$NotebookPort --no-browser --allow-root --ServerApp.token=\$NotebookToken" >> /entrypoint.sh \
&& chmod +x /entrypoint.sh \
&& rm -rf /tmp/*
EXPOSE 8888
ENV NotebookToken="" \
NotebookPort=8888
CMD ["/entrypoint.sh"]
# docker run --rm --name hypergbm -p 8830:8888 -e NotebookToken=your-token datacanvas/hypergbm