# How to build this Docker image:
# docker build . --tag eschnett/cactus-amrex
# docker push eschnett/cactus-amrex
# Use NixOS
FROM nixos/nix
# RUN nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs
# RUN nix-channel --update
# RUN nix-build -A pythonFull '<nixpkgs>'
RUN nix-env -i \
cmake \
gfortran-wrapper \
git \
gnumake \
gsl \
hwloc \
mpich \
perl \
pkg-config \
python \
python3 \
rsync \
subversion \
wget \
zlib
RUN mkdir /cactus
WORKDIR /cactus
# # Install system packages
# RUN apt-get update && \
# apt-get --yes --no-install-recommends install \
# build-essential \
# ca-certificates \
# g++ \
# gfortran \
# git \
# libgsl-dev \
# libhwloc-dev \
# libmpich-dev \
# perl \
# pkg-config \
# python \
# python3 \
# rsync \
# subversion \
# wget \
# zlib1g-dev \
# && \
# rm -rf /var/lib/apt/lists/*
# Install AMReX
RUN mkdir src
WORKDIR /cactus/src
RUN wget https://github.com/AMReX-Codes/amrex/archive/20.01.tar.gz
RUN tar xzf 20.01.tar.gz
WORKDIR /cactus/src/amrex-20.01
RUN mkdir build
WORKDIR /cactus/src/amrex-20.01/build
RUN cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_PARTICLES=ON -DENABLE_ASSERTIONS=ON -DENABLE_BACKTRACE=ON -DENABLE_OMP=ON -DCMAKE_INSTALL_PREFIX=/cactus/amrex ..
RUN make -j$(nproc)
RUN make -j$(nproc) install
WORKDIR /cactus
# RUN rm -rf src
# As documentation
COPY Dockerfile /Dockerfile