Spaces:
Build error
Build error
File size: 4,685 Bytes
8add14b 0d68fab 8add14b |
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 |
FROM rockylinux:8
MAINTAINER Jordan A Caraballo-Vega <[email protected]>
ENV NML_VERSION 4.4
ENV MPI_SHORT_VERSION 4.0
ENV MPI_VERSION 4.0.0
ENV J 4
# Set up base OS environment
RUN dnf -y update && dnf -y install epel-release \
&& dnf install -y --setopt=tsflags=nodocs --enablerepo=powertools,epel \
gcc gcc-gfortran gcc-c++ \
glibc.i686 libgcc.i686 libpng-devel jasper-libs jasper-devel hostname \
m4 make perl tar bash tcsh time wget which zlib zlib-devel \
openssh-clients openssh-server net-tools fontconfig libgfortran \
libXext libXrender ImageMagick ImageMagick-devel git flex \
flex-devel byacc bzip2-devel gzip libcurl-devel zlib-devel \
php-devel php-pear openssl-devel bzip2-devel libffi-devel xz-devel \
&& dnf -y groupinstall "Development Tools" \
&& dnf -y clean all --enablerepo='*' \
&& rm -rf /var/cache/dnf
# Set up base systems
RUN groupadd wrf -g 9999
RUN useradd -u 9999 -g wrf -G wheel -M -d /wrf wrfuser
RUN mkdir /wrf \
&& chown -R wrfuser:wrf /wrf \
&& chmod 6755 /wrf
# Build OpenMPI
RUN mkdir -p /wrf/libs/openmpi/BUILD_DIR
RUN cd /wrf/libs/openmpi/BUILD_DIR \
&& curl -L -O https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.0.tar.gz \
&& tar -xf openmpi-4.0.0.tar.gz \
&& cd openmpi-4.0.0 \
&& ./configure --prefix=/usr/local &> /wrf/libs/build_log_openmpi_config \
&& echo dummy printout to keep travis happy openmpi config \
&& make all install \
&& echo "make all install | awk 'NR % 1000 == 0'" \
&& echo "make all install &> /wrf/libs/build_log_openmpi_make" \
&& echo dummy printout to keep travis happy openmpi make \
&& cd / \
&& rm -rf /wrf/libs/openmpi/BUILD_DIR
# Build HDF5 libraries
RUN mkdir -p /wrf/libs/hdf5/BUILD_DIR
RUN cd /wrf/libs/hdf5/BUILD_DIR \
&& wget https://www2.mmm.ucar.edu/people/duda/files/mpas/sources/hdf5-1.10.5.tar.bz2 \
&& tar -xf hdf5-1.10.5.tar.bz2 \
&& cd hdf5-1.10.5 \
&& ./configure --enable-fortran --enable-cxx --enable-shared --prefix=/usr/local/ &> /wrf/libs/build_log_hdf5_config \
&& echo dummy printout to keep travis happy hdf5 config \
&& make install &> /wrf/libs/build_log_hdf5_make \
&& echo dummy printout to keep travis happy hdf5 make \
&& cd / \
&& rm -rf /wrf/libs/hdf5/BUILD_DIR
ENV LD_LIBRARY_PATH /usr/local/lib
# Build netCDF C libraries
ENV NETCDF /wrf/libs/netcdf
RUN mkdir -p ${NETCDF}/BUILD_DIR
RUN cd ${NETCDF}/BUILD_DIR \
&& curl -L -O https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.7.4.tar.gz \
&& curl -L -O https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.0.tar.gz \
&& curl -L -O https://github.com/Unidata/netcdf4-python/archive/v1.5.3rel.tar.gz \
&& tar -xf v4.7.4.tar.gz \
&& cd netcdf-c-4.7.4 \
&& ./configure --enable-shared --prefix=${NETCDF} &> /wrf/libs/build_log_ncc_config \
&& echo dummy printout to keep travis happy ncc config \
&& make install &> /wrf/libs/build_log_ncc_make \
&& echo dummy printout to keep travis happy ncc make \
&& cd /
# Build netCDF Fortran libraries
RUN cd ${NETCDF}/BUILD_DIR \
&& tar -xf v4.6.0.tar.gz \
&& cd netcdf-fortran-4.6.0/ \
&& export LD_LIBRARY_PATH=${NETCDF}/lib:/usr/local/lib:${LD_LIBRARY_PATH} \
&& CPPFLAGS=-I${NETCDF}/include LDFLAGS=-L${NETCDF}/lib ./configure --enable-shared --prefix=${NETCDF} &> /wrf/libs/build_log_ncf_config \
&& echo dummy printout to keep travis happy ncf config \
&& make install &> /wrf/libs/build_log_ncf_make \
&& echo dummy printout to keep travis happy ncf make \
&& cd /
# Some sshd configurations for mpi
RUN mkdir -p /var/run/sshd \
&& ssh-keygen -A \
&& sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config \
&& sed -i 's/#RSAAuthentication yes/RSAAuthentication yes/g' /etc/ssh/sshd_config \
&& sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
# Create WRF working directories
RUN mkdir -p /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput \
&& chown -R wrfuser:wrf /wrf /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput /usr/local \
&& chmod 6755 /wrf /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput /usr/local
# Some additional configurations
RUN mkdir /wrf/.ssh ; echo "StrictHostKeyChecking no" > /wrf/.ssh/config
COPY ./requirements/default-mca-params.conf /wrf/.openmpi/mca-params.conf
RUN mkdir -p /wrf/.openmpi
RUN chown -R wrfuser:wrf /wrf/
# Setting up environment variables
ENV NETCDF "${NETCDF}"
ENV LDFLAGS="-lm"
ENV JASPERINC /usr/include/jasper
ENV JASPERLIB /usr/lib64
ENV NETCDF_classic 1
ENV LD_LIBRARY_PATH /usr/local/lib/openmpi:/wrf/libs/netcdf/lib:${LD_LIBRARY_PATH}
ENV PATH .:/usr/bin:/usr/local/bin:/wrf/libs/netcdf/bin:$PATH
|