-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathgenerate.Dockerfile.sh
executable file
·145 lines (122 loc) · 2.76 KB
/
generate.Dockerfile.sh
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/bash
function usage {
echo "generate.Dockerfile architecture [mpi]"
}
if test -z "$1"
then
usage
exit -1
fi
ARCH=$1
shift
SYSTEM="ubuntu:18.04"
case $ARCH in
cpu) BASE="$SYSTEM"
;;
gpu) CUDAVER="10.0"
BASE="nvidia/cuda:$CUDAVER-devel-$(echo $SYSTEM | sed 's/://')"
;;
list) echo "cpu gpu"
exit 0
;;
*) echo "Unknown arch"
usage
exit -1
;;
esac
if test -z "$1"
then
MPITAG=nompi
else
MPITAG=$1
shift
fi
case $MPITAG in
openmpi4.0)
MPITYPE=openmpi
MPIVER=4.0
MPIVERSION=4.0.1
;;
openmpi3.1)
MPITYPE=openmpi
MPIVER=3.1
MPIVERSION=3.1.5
;;
openmpi3.0)
MPITYPE=openmpi
MPIVER=3.0
MPIVERSION=3.0.5
;;
nompi)
MPITYPE=nompi
;;
list) echo "openmpi4.0 openmpi3.1 openmpi3.0"
exit 0
;;
*) echo "Unknown mpi: $MPITAG"
usage
exit -1
;;
esac
case $MPITYPE in ######################################
openmpi) ##############################################
cat <<EOF
FROM cfdgo/tclb:$ARCH-nompi
ENV OMPI_VERSION=$MPIVERSION
RUN mkdir -p /tmp/ompi \\
&& cd /tmp/ompi \\
&& wget \\
-O openmpi-$MPIVERSION.tar.bz2 \\
https://download.open-mpi.org/release/open-mpi/v$MPIVER/openmpi-$MPIVERSION.tar.bz2 \\
&& tar -xjf openmpi-$MPIVERSION.tar.bz2 \\
&& cd /tmp/ompi/openmpi-$MPIVERSION \\
&& ./configure \\
&& make \\
&& make install
RUN ldconfig
EOF
;; ####################################################
nompi) ################################################
cat <<EOF
FROM $BASE
ENV DOCKER_TAG=$ARCH
ENV CONTAINER=true
ENV LC_ALL=C
RUN apt-get update && apt-get install -y gnupg2
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 \\
&& echo "deb http://cran.rstudio.com/bin/linux/ubuntu bionic-cran35/" >>/etc/apt/sources.list \\
&& apt-get update \\
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \\
ed \\
less \\
locales \\
vim \\
wget \\
ca-certificates \\
fonts-texgyre \\
git \\
software-properties-common \\
autoconf \\
ssh \\
readline-common \\
joe \\
r-base-dev \\
r-recommended \\
qpdf
RUN R -e "options(repos='http://cran.rstudio.com'); install.packages(c('optparse','numbers', 'yaml'));" \\
&& wget https://github.com/llaniewski/rtemplate/archive/master.tar.gz -O rtemplate.tar.gz \\
&& R CMD INSTALL rtemplate.tar.gz \\
&& wget https://github.com/llaniewski/gvector/archive/master.tar.gz -O gvector.tar.gz \\
&& R CMD INSTALL gvector.tar.gz \\
&& wget https://github.com/llaniewski/polyAlgebra/archive/master.tar.gz -O polyAlgebra.tar.gz \\
&& R CMD INSTALL polyAlgebra.tar.gz
RUN ldconfig
CMD ["bash"]
EOF
;; ####################################################
*)
echo "Unknown MPITYPE: $MPITYPE --- this should not happen"
exit -1
;;
esac ##################################################
exit 0