jordancaraballo commited on
Commit
8add14b
·
1 Parent(s): e2744f4

Adding WRF baselibs rocky linux

Browse files
.github/workflows/dockerhub.yml CHANGED
@@ -38,6 +38,6 @@ jobs:
38
  uses: docker/build-push-action@v4
39
  with:
40
  context: .
41
- file: ./requirements/Dockerfile.baselibs
42
  push: true
43
  tags: nasanccs/wrf-baselibs:latest
 
38
  uses: docker/build-push-action@v4
39
  with:
40
  context: .
41
+ file: ./requirements/Dockerfile.Baselibs
42
  push: true
43
  tags: nasanccs/wrf-baselibs:latest
requirements/{Dockerfile.baselibs → Dockerfile.Baselibs} RENAMED
@@ -15,11 +15,12 @@ RUN dnf -y update && dnf -y install epel-release \
15
  openssh-clients openssh-server net-tools fontconfig libgfortran \
16
  libXext libXrender ImageMagick ImageMagick-devel git flex \
17
  flex-devel byacc bzip2-devel gzip libcurl-devel zlib-devel \
18
- php-devel php-pear \
 
19
  && dnf -y clean all --enablerepo='*' \
20
  && rm -rf /var/cache/dnf
21
 
22
- # Setting system
23
  RUN groupadd wrf -g 9999
24
  RUN useradd -u 9999 -g wrf -G wheel -M -d /wrf wrfuser
25
  RUN mkdir /wrf \
@@ -27,8 +28,8 @@ RUN mkdir /wrf \
27
  && chmod 6755 /wrf
28
 
29
  # Build OpenMPI
30
- RUN mkdir -p /wrf/libs/openmpi/BUILD_DIR \
31
- && cd /wrf/libs/openmpi/BUILD_DIR \
32
  && curl -L -O https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.0.tar.gz \
33
  && tar -xf openmpi-4.0.0.tar.gz \
34
  && cd openmpi-4.0.0 \
@@ -42,8 +43,8 @@ RUN mkdir -p /wrf/libs/openmpi/BUILD_DIR \
42
  && rm -rf /wrf/libs/openmpi/BUILD_DIR
43
 
44
  # Build HDF5 libraries
45
- RUN mkdir -p /wrf/libs/hdf5/BUILD_DIR \
46
- && cd /wrf/libs/hdf5/BUILD_DIR \
47
  && wget https://www2.mmm.ucar.edu/people/duda/files/mpas/sources/hdf5-1.10.5.tar.bz2 \
48
  && tar -xf hdf5-1.10.5.tar.bz2 \
49
  && cd hdf5-1.10.5 \
@@ -57,8 +58,8 @@ ENV LD_LIBRARY_PATH /usr/local/lib
57
 
58
  # Build netCDF C libraries
59
  ENV NETCDF /wrf/libs/netcdf
60
- RUN mkdir -p ${NETCDF}/BUILD_DIR \
61
- && cd ${NETCDF}/BUILD_DIR \
62
  && curl -L -O https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.7.4.tar.gz \
63
  && curl -L -O https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.0.tar.gz \
64
  && curl -L -O https://github.com/Unidata/netcdf4-python/archive/v1.5.3rel.tar.gz \
@@ -81,131 +82,29 @@ RUN cd ${NETCDF}/BUILD_DIR \
81
  && echo dummy printout to keep travis happy ncf make \
82
  && cd /
83
 
84
- # OpenMPI version 4.0.5
85
- #RUN mkdir -p /var/tmp && \
86
- # wget -q -nc --no-check-certificate -P /var/tmp https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.5.tar.bz2 && \
87
- # mkdir -p /var/tmp && tar -x -f /var/tmp/openmpi-4.0.5.tar.bz2 -C /var/tmp -j && \
88
- # cd /var/tmp/openmpi-4.0.5 && \
89
- # CC=gcc CXX=g++ F77=gfortran F90=gfortran FC=gfortran ./configure --prefix=/usr/local/openmpi --disable-getpwuid --enable-orterun-prefix-by-default --with-verbs && \
90
- # make -j$(nproc) && \
91
- # make -j$(nproc) install && \
92
- # rm -rf /var/tmp/openmpi-4.0.5 /var/tmp/openmpi-4.0.5.tar.bz2
93
- #ENV LD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH \
94
- # PATH=/usr/local/openmpi/bin:$PATH
95
-
96
-
97
-
98
- # Set up base OS environment
99
-
100
- #RUN yum -y update
101
- # Install SCL release package and python SCL
102
- #RUN yum -y install centos-release-scl \
103
- # && yum -y install --setopt=tsflags=nodocs rh-python38
104
- # Enable rh-python scl binary
105
- #COPY entrypoint.sh /usr/bin/entrypoint.sh
106
- #RUN chmod +x /usr/bin/entrypoint.sh
107
- #ENTRYPOINT [ "/usr/bin/entrypoint.sh" ]
108
-
109
-
110
-
111
- # Install version 10 of GNU compiler
112
-
113
- #RUN yum -y install centos-release-scl \
114
- # && yum -y install devtoolset-10 \
115
- # && yum -y install devtoolset-10-gcc devtoolset-10-gcc-gfortran devtoolset-10-gcc-c++ \
116
- # && scl enable devtoolset-10 bash \
117
- # && scl enable devtoolset-10 tcsh
118
-
119
-
120
- # Install and setup Python3.8
121
- #RUN yum -y groupinstall "Development Tools"
122
- #RUN yum -y install openssl-devel bzip2-devel libffi-devel xz-devel
123
- #RUN mkdir -p /wrf/libs/python/BUILD_DIR \
124
- # && cd /wrf/libs/python/BUILD_DIR \
125
- # && wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz \
126
- # && tar -xf Python-3.8.12.tgz \
127
- # && cd Python-3.8.12 \
128
- # && ./configure --enable-optimizations --prefix=/usr/local \
129
- # && make altinstall \
130
- # && cd / \
131
- # && rm -rf /wrf/libs/python/BUILD_DIR
132
- #RUN python3.8 -m pip install numpy \
133
- # && python3.8 -m pip install --upgrade pip \
134
- # && python3.8 -m pip install --upgrade setuptools
135
- #RUN ldconfig -v
136
-
137
- # Build netCDF4-python libraries
138
- #RUN source /opt/rh/devtoolset-10/enable \
139
- # && cd ${NETCDF}/BUILD_DIR \
140
- # && tar -xf v1.5.3rel.tar.gz \
141
- # && cd netcdf4-python-1.5.3rel/ \
142
- # && export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH} \
143
- # && export NETCDF4_DIR=${NETCDF} \
144
- # && export HDF5_DIR=/usr/local \
145
- # && python3.8 -m pip install wheel \
146
- # && python3.8 setup.py build \
147
- # && CPPFLAGS="-I${NETCDF}/include -I/usr/local/include" LDFLAGS="-L${NETCDF}/lib -L/usr/local/lib" python3.8 setup.py install \
148
- # && echo dummy printout to keep travis happy ncf4-python install \
149
- # && cd / \
150
- # && rm -rf ${NETCDF}/BUILD_DIR
151
-
152
- #RUN mkdir -p /var/run/sshd \
153
- # && ssh-keygen -A \
154
- # && sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config \
155
- # && sed -i 's/#RSAAuthentication yes/RSAAuthentication yes/g' /etc/ssh/sshd_config \
156
- # && sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
157
-
158
- #RUN mkdir -p /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput \
159
- # && chown -R wrfuser:wrf /wrf /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput /usr/local \
160
- # && chmod 6755 /wrf /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput /usr/local
161
-
162
- # Download NCL
163
- #RUN curl -SL https://www.earthsystemgrid.org/api/v1/dataset/ncl.662.dap/file/ncl_ncarg-6.6.2-CentOS7.6_64bit_gnu485.tar.gz | tar zxC /usr/local
164
- #ENV NCARG_ROOT /usr/local
165
-
166
- # Set environment for interactive container shells
167
- #RUN echo export LDFLAGS="-lm" >> /etc/bashrc \
168
- # && echo export NETCDF=${NETCDF} >> /etc/bashrc \
169
- # && echo export JASPERINC=/usr/include/jasper/ >> /etc/bashrc \
170
- # && echo export JASPERLIB=/usr/lib64/ >> /etc/bashrc \
171
- # && echo export LD_LIBRARY_PATH="/opt/rh/devtoolset-10/root/usr/lib/gcc/aarch64-redhat-linux/10:/usr/lib64/openmpi/lib:${NETCDF}/lib:${LD_LIBRARY_PATH}" >> /etc/bashrc \
172
- # && echo export PATH=".:/opt/rh/devtoolset-10/root/usr/bin:/usr/lib64/openmpi/bin:${NETCDF}/bin:$PATH" >> /etc/bashrc \
173
- # && echo export NCARG_ROOT=/usr/local >> /etc/bashrc
174
-
175
- #RUN echo setenv LDFLAGS "-lm" >> /etc/csh.cshrc \
176
- # && echo setenv NETCDF "${NETCDF}" >> /etc/csh.cshrc \
177
- # && echo setenv JASPERINC "/usr/include/jasper/" >> /etc/csh.cshrc \
178
- # && echo setenv JASPERLIB "/usr/lib64/" >> /etc/csh.cshrc \
179
- # && echo setenv LD_LIBRARY_PATH "/opt/rh/devtoolset-10/root/usr/lib/gcc/aarch64-redhat-linux/10:/usr/lib64/openmpi/lib:${NETCDF}/lib:${LD_LIBRARY_PATH}" >> /etc/csh.cshrc \
180
- # && echo setenv PATH ".:/opt/rh/devtoolset-10/root/usr/bin:/usr/lib64/openmpi/bin:${NETCDF}/bin:$PATH" >> /etc/csh.cshrc \
181
- # && echo setenv NCARG_ROOT /usr/local >> /etc/csh.cshrc
182
-
183
- #RUN mkdir /wrf/.ssh ; echo "StrictHostKeyChecking no" > /wrf/.ssh/config
184
- #COPY default-mca-params.conf /wrf/.openmpi/mca-params.conf
185
- #RUN mkdir -p /wrf/.openmpi
186
- #RUN chown -R wrfuser:wrf /wrf/
187
-
188
- # all root steps completed above, now below as regular userID wrfuser
189
- #USER wrfuser
190
- #WORKDIR /wrf
191
-
192
- # Download data
193
- #ARG argname=tutorial
194
- #RUN echo DAVE $argname
195
- #RUN if [ "$argname" = "tutorial" ] ; then curl -SL https://www2.mmm.ucar.edu/wrf/src/wps_files/geog_low_res_mandatory.tar.gz | tar -xzC /wrf/WPS_GEOG ; fi
196
- #RUN if [ "$argname" = "tutorial" ] ; then curl -SL https://www2.mmm.ucar.edu/wrf/TUTORIAL_DATA/colorado_march16.new.tar.gz | tar -xzC /wrf/wrfinput ; fi
197
- #RUN if [ "$argname" = "tutorial" ] ; then curl -SL https://www2.mmm.ucar.edu/wrf/src/namelists_v$NML_VERSION.tar.gz | tar -xzC /wrf/wrfinput ; fi
198
- #RUN if [ "$argname" = "tutorial" ] ; then curl -SL https://www2.mmm.ucar.edu/wrf/TUTORIAL_DATA/WRF_NCL_scripts.tar.gz | tar -xzC /wrf ; fi
199
- #RUN if [ "$argname" = "regtest" ] ; then curl -SL https://www2.mmm.ucar.edu/wrf/dave/data_smaller.tar.gz | tar -xzC /wrf ; fi
200
-
201
- #ENV JASPERINC /usr/include/jasper
202
- #ENV JASPERLIB /usr/lib64
203
- #ENV NETCDF_classic 1
204
- #ENV LD_LIBRARY_PATH /opt/rh/devtoolset-10/root/usr/lib/gcc/aarch64-redhat-linux/10:/usr/lib64/openmpi/lib:${NETCDF}/lib:${LD_LIBRARY_PATH}
205
- #ENV PATH .:/opt/rh/devtoolset-10/root/usr/bin:/usr/lib64/openmpi/bin:${NETCDF}/bin:$PATH
206
-
207
- #RUN ssh-keygen -f /wrf/.ssh/id_rsa -t rsa -N '' \
208
- # && chmod 600 /wrf/.ssh/config \
209
- # && chmod 700 /wrf/.ssh \
210
- # && cp /wrf/.ssh/id_rsa.pub /wrf/.ssh/authorized_keys
211
- #
 
15
  openssh-clients openssh-server net-tools fontconfig libgfortran \
16
  libXext libXrender ImageMagick ImageMagick-devel git flex \
17
  flex-devel byacc bzip2-devel gzip libcurl-devel zlib-devel \
18
+ php-devel php-pear openssl-devel bzip2-devel libffi-devel xz-devel \
19
+ && dnf -y groupinstall "Development Tools" \
20
  && dnf -y clean all --enablerepo='*' \
21
  && rm -rf /var/cache/dnf
22
 
23
+ # Set up base systems
24
  RUN groupadd wrf -g 9999
25
  RUN useradd -u 9999 -g wrf -G wheel -M -d /wrf wrfuser
26
  RUN mkdir /wrf \
 
28
  && chmod 6755 /wrf
29
 
30
  # Build OpenMPI
31
+ RUN mkdir -p /wrf/libs/openmpi/BUILD_DIR
32
+ RUN cd /wrf/libs/openmpi/BUILD_DIR \
33
  && curl -L -O https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.0.tar.gz \
34
  && tar -xf openmpi-4.0.0.tar.gz \
35
  && cd openmpi-4.0.0 \
 
43
  && rm -rf /wrf/libs/openmpi/BUILD_DIR
44
 
45
  # Build HDF5 libraries
46
+ RUN mkdir -p /wrf/libs/hdf5/BUILD_DIR
47
+ RUN cd /wrf/libs/hdf5/BUILD_DIR \
48
  && wget https://www2.mmm.ucar.edu/people/duda/files/mpas/sources/hdf5-1.10.5.tar.bz2 \
49
  && tar -xf hdf5-1.10.5.tar.bz2 \
50
  && cd hdf5-1.10.5 \
 
58
 
59
  # Build netCDF C libraries
60
  ENV NETCDF /wrf/libs/netcdf
61
+ RUN mkdir -p ${NETCDF}/BUILD_DIR
62
+ RUN cd ${NETCDF}/BUILD_DIR \
63
  && curl -L -O https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.7.4.tar.gz \
64
  && curl -L -O https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.0.tar.gz \
65
  && curl -L -O https://github.com/Unidata/netcdf4-python/archive/v1.5.3rel.tar.gz \
 
82
  && echo dummy printout to keep travis happy ncf make \
83
  && cd /
84
 
85
+ # Some sshd configurations for mpi
86
+ RUN mkdir -p /var/run/sshd \
87
+ && ssh-keygen -A \
88
+ && sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config \
89
+ && sed -i 's/#RSAAuthentication yes/RSAAuthentication yes/g' /etc/ssh/sshd_config \
90
+ && sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
91
+
92
+ # Create WRF working directories
93
+ RUN mkdir -p /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput \
94
+ && chown -R wrfuser:wrf /wrf /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput /usr/local \
95
+ && chmod 6755 /wrf /wrf/WPS_GEOG /wrf/wrfinput /wrf/wrfoutput /usr/local
96
+
97
+ # Some additional configurations
98
+ RUN mkdir /wrf/.ssh ; echo "StrictHostKeyChecking no" > /wrf/.ssh/config
99
+ COPY default-mca-params.conf /wrf/.openmpi/mca-params.conf
100
+ RUN mkdir -p /wrf/.openmpi
101
+ RUN chown -R wrfuser:wrf /wrf/
102
+
103
+ # Setting up environment variables
104
+ ENV NETCDF "${NETCDF}"
105
+ ENV LDFLAGS="-lm"
106
+ ENV JASPERINC /usr/include/jasper
107
+ ENV JASPERLIB /usr/lib64
108
+ ENV NETCDF_classic 1
109
+ ENV LD_LIBRARY_PATH /usr/local/lib/openmpi:/wrf/libs/netcdf/lib:${LD_LIBRARY_PATH}
110
+ ENV PATH .:/usr/bin:/usr/local/bin:/wrf/libs/netcdf/bin:$PATH
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
requirements/{Dockerfile → Dockerfile.WRF} RENAMED
File without changes
requirements/default-mca-params.conf ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ btl=tcp,self
2
+ plm_rsh_no_tree_spawn=1
3
+ btl_base_warn_component_unused=0
4
+ pml=ob1