1- FROM ubuntu:18 .04
1+ FROM ubuntu:22 .04
22
3- ENV USERNAME =env
3+ ENV ENVDIR =env
44
55# install sudo
66RUN apt-get -yq update && apt-get -yq install sudo
77
8- # create and switch to a user
9- RUN echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
10- RUN useradd --no-log-init --home-dir /home/$USERNAME --create-home --shell /bin/bash $USERNAME
11- RUN adduser $USERNAME sudo
12- USER $USERNAME
13- WORKDIR /home/$USERNAME
8+ WORKDIR /$ENVDIR
149
1510# install packages
1611RUN sudo apt-get install -yq git
17- RUN sudo apt-get install --no-install-recommends -yq make gcc gfortran libssl-dev
12+ RUN sudo apt-get install --no-install-recommends -yq make gcc gfortran libssl-dev cmake
1813RUN sudo apt-get install -yq libopenblas-dev libmpich-dev libblas-dev liblapack-dev libscalapack-mpi-dev libhdf5-serial-dev
1914RUN sudo apt-get install -yq vim
2015RUN sudo apt-get install -yq git-lfs
@@ -24,24 +19,16 @@ RUN sudo apt-get install -yq wget
2419RUN sudo apt-get clean -q
2520
2621# download dependencies
27- ENV LIB_DIR=/home/$USERNAME /dependencies
22+ ENV LIB_DIR=/$ENVDIR /dependencies
2823WORKDIR $LIB_DIR
2924
30- RUN wget https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0.tar.gz
3125# RUN wget -O mfem-4.5.tar.gz https://github.com/mfem/mfem/archive/refs/tags/v4.5.tar.gz
3226RUN wget -O hypre-2.20.0.tar.gz https://github.com/hypre-space/hypre/archive/refs/tags/v2.20.0.tar.gz
3327RUN wget -O parmetis-4.0.3.tar.gz http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz
3428RUN wget -O gslib-1.0.7.tar.gz https://github.com/gslib/gslib/archive/v1.0.7.tar.gz
3529# RUN wget -O glvis-4.2.tar.gz https://github.com/GLVis/glvis/archive/refs/tags/v4.2.tar.gz
3630# RUN wget -O metis-4.0.3.tar.gz https://github.com/mfem/tpls/raw/gh-pages/metis-4.0.3.tar.gz
3731
38- # install cmake-3.13.0
39- RUN tar -zxvf cmake-3.13.0.tar.gz
40- WORKDIR ./cmake-3.13.0
41- RUN ./bootstrap
42- RUN make
43- RUN sudo make install
44- WORKDIR $LIB_DIR
4532
4633ENV CFLAGS="-fPIC"
4734ENV CPPFLAGS="-fPIC"
@@ -113,6 +100,17 @@ RUN ln -s ./ include
113100WORKDIR $LIB_DIR
114101RUN ln -s mfem_parallel mfem
115102
103+ # install googletest
104+ WORKDIR $LIB_DIR
105+ RUN git clone https://github.com/google/googletest
106+ WORKDIR ./googletest
107+ # Last release that supports c++11
108+ RUN git checkout tags/release-1.12.1 -b v1.12.1
109+ WORKDIR ./build
110+ RUN cmake ..
111+ RUN make
112+ RUN sudo make install
113+
116114# clean up
117115WORKDIR $LIB_DIR
118116RUN rm *.tar.gz
@@ -121,7 +119,7 @@ RUN rm *.tar.gz
121119RUN echo 'set(CMAKE_C_COMPILER mpicc)\n \
122120set(CMAKE_CXX_COMPILER mpicxx)\n \
123121set(CMAKE_Fortran_COMPILER mpif90)\n \
124- set(LIB_DIR /home/ env/dependencies)\n \
122+ set(LIB_DIR /env/dependencies)\n \
125123set(MFEM_DIR ${LIB_DIR}/mfem)\n \
126124set(HYPRE_DIR ${LIB_DIR}/hypre/src/hypre)\n \
127125set(PARMETIS_DIR ${LIB_DIR}/parmetis-4.0.3/build/lib/libparmetis)\n \
@@ -137,5 +135,10 @@ ENV HYPRE_DIR=$LIB_DIR/hypre/src/hypre
137135ENV PARMETIS_DIR=$LIB_DIR/parmetis-4.0.3/build/lib/libparmetis
138136ENV METIS_DIR=$LIB_DIR/parmetis-4.0.3/build/lib/libmetis
139137
140- # WORKDIR /home
141- # RUN useradd -u 1000 -m test
138+ # create and switch to a user
139+ ENV USERNAME=test
140+ RUN echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
141+ RUN useradd --no-log-init -u 1001 --create-home --shell /bin/bash $USERNAME
142+ RUN adduser $USERNAME sudo
143+ USER $USERNAME
144+ WORKDIR /home/$USERNAME
0 commit comments