# Set the base image to the latest LTS version of Ubuntu FROM ubuntu:latest # Set the working directory to /home WORKDIR /home # Create an apt configuration file to fix erroneous "hash sum mismatch" errors RUN printf "Acquire::http::Pipeline-Depth 0;\nAcquire::http::No-Cache true;\nAcquire::BrokenProxy true;" \ >> /etc/apt/apt.conf.d/99fixbadproxy ENV DEBIAN_FRONTEND="noninteractive" # Add the necessary packages to compile Elmer/Ice RUN apt update -o Acquire::CompressionTypes::Order::=gz && apt upgrade -y && apt install -y \ build-essential \ cmake \ git \ libblas-dev \ liblapack-dev \ libmumps-dev \ libparmetis-dev \ mpich \ sudo \ less # Clone the ElmerIce source code and compile Elmer/Ice RUN git clone git://www.github.com/ElmerCSC/elmerfem -b elmerice elmerice \ && mkdir elmerice/builddir \ && cd elmerice/builddir \ && cmake /home/elmerice \ -DCMAKE_INSTALL_PREFIX=/usr/local/Elmer-devel \ -DCMAKE_C_COMPILER=/usr/bin/gcc \ -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran \ -DWITH_MPI:BOOL=TRUE -DWITH_Mumps:BOOL=TRUE \ -DWITH_Hypre:BOOL=FALSE -DWITH_Trilinos:BOOL=FALSE \ -DWITH_ELMERGUI:BOOL=FALSE -DWITH_ElmerIce:BOOL=TRUE \ && make \ && make install \ && rm -R /home/elmerice # Set the path ENV PATH=$PATH:/usr/local/Elmer-devel/bin ENV PATH=$PATH:/usr/local/Elmer-devel/share/elmersolver/lib # Add user ENV USER=glacier RUN adduser --disabled-password --gecos '' ${USER} \ && adduser ${USER} sudo \ && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers USER ${USER} ENV HOME=/home/${USER} WORKDIR ${HOME}