forked from isce-framework/isce2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
various updates from ARIA-related projects (isce-framework#149)
* add Dockerfile and SConfigISCE to build cuda-enabled modules * add Dockerfile and SConfigISCE to build cuda-enabled modules * set correct name * update for centos7 and cuda-dev image * restore * disable GPUampcor * update * save * sync up Dockerfile updates * fix base image * change docker image names * create gpu vs. cpu specific tags * update with nodata WBD Stitcher * fix segmentation fault when running sciflo workflows - remove dependencies that downgrade the `geos` conda package * sync fix for segmentation fault to cuda builds * ping ffi to version 1.12.2 Latest version of ffi, 1.13.0, breaks installation of fpm: ``` $ sudo gem install --no-ri --no-rdoc fpm Fetching: cabin-0.9.0.gem (100%) Successfully installed cabin-0.9.0 Fetching: backports-3.17.2.gem (100%) Successfully installed backports-3.17.2 Fetching: arr-pm-0.0.10.gem (100%) Successfully installed arr-pm-0.0.10 Fetching: clamp-1.0.1.gem (100%) Successfully installed clamp-1.0.1 Fetching: ffi-1.13.0.gem (100%) ERROR: Error installing fpm: ffi requires Ruby version >= 2.3. ``` TODO: remove pin when ffi's backwards compatiblity is restored. * comment out unused import * add build circleci job to PR tests * pin ffi in cuda build * revert logging hackery * fix "target_include_directories called with non-compilable target type" errors * Keep source directory for topsStack Co-authored-by: dustinlo <dustin.k.lo@jpl.nasa.gov> Co-authored-by: shitong01 <stchin@ntu.edu.sg> Co-authored-by: Ryan Burns <47790121+rtburns-jpl@users.noreply.github.com>
- Loading branch information
1 parent
1f947b4
commit f09213e
Showing
11 changed files
with
201 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
FROM hysds/cuda-dev:latest | ||
|
||
# Set an encoding to make things work smoothly. | ||
ENV LANG en_US.UTF-8 | ||
|
||
# Set ISCE repo | ||
ENV ISCE_ORG isce-framework | ||
|
||
# set to root user | ||
USER root | ||
|
||
# install tools for RPM generation | ||
RUN set -ex \ | ||
&& yum update -y \ | ||
&& yum groupinstall -y "development tools" \ | ||
&& yum install -y \ | ||
make ruby-devel rpm-build rubygems \ | ||
&& gem install ffi -v 1.12.2 \ | ||
&& gem install --no-ri --no-rdoc fpm | ||
|
||
# install isce requirements | ||
RUN set -ex \ | ||
&& . /opt/conda/bin/activate root \ | ||
&& conda install --yes \ | ||
cython \ | ||
gdal \ | ||
git \ | ||
h5py \ | ||
libgdal \ | ||
pytest \ | ||
numpy \ | ||
fftw \ | ||
scipy \ | ||
scons \ | ||
hdf4 \ | ||
hdf5 \ | ||
netcdf4 \ | ||
libgcc \ | ||
libstdcxx-ng \ | ||
cmake \ | ||
&& yum install -y uuid-devel x11-devel motif-devel jq \ | ||
&& ln -sf /opt/conda/bin/cython /opt/conda/bin/cython3 \ | ||
&& mkdir -p /opt/isce2/src | ||
|
||
# override system libuuid into conda env to link in libXm and libXt | ||
RUN set -ex \ | ||
&& cd /opt/conda/lib \ | ||
&& unlink libuuid.so \ | ||
&& unlink libuuid.so.1 \ | ||
&& ln -s /lib64/libuuid.so.1.3.0 libuuid.so \ | ||
&& ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 | ||
|
||
# install libgfortran.so.3 and create missing link | ||
RUN set -ex \ | ||
&& yum install -y gcc-gfortran \ | ||
&& cd /lib64 \ | ||
&& ( test -f libgfortran.so || ln -sv libgfortran.so.*.* libgfortran.so ) | ||
|
||
# copy repo | ||
COPY . /opt/isce2/src/isce2 | ||
|
||
# build ISCE | ||
RUN set -ex \ | ||
&& . /opt/conda/bin/activate root \ | ||
&& cd /opt/isce2/src/isce2 \ | ||
&& source docker/build_env.sh \ | ||
&& mkdir -p $BUILD_DIR \ | ||
&& cp docker/SConfigISCE.cuda configuration/SConfigISCE \ | ||
&& scons install \ | ||
&& cp docker/isce_env.sh $ISCE_INSTALL_ROOT \ | ||
&& cd /tmp \ | ||
&& rm -rf /opt/isce2/src \ | ||
&& mkdir -p /tmp/rpm-build/opt \ | ||
&& mv $ISCE_INSTALL_ROOT /tmp/rpm-build/opt \ | ||
&& curl -s https://api.github.com/repos/$ISCE_ORG/isce2/git/refs/heads/master \ | ||
> /tmp/rpm-build/opt/isce2/version.json \ | ||
&& hash=$(cat /tmp/rpm-build/opt/isce2/version.json | jq -r .object.sha) \ | ||
&& short_hash=$(echo $hash | cut -c1-5) \ | ||
&& fpm -s dir -t rpm -C /tmp/rpm-build --name isce \ | ||
--prefix=/ --version=2.3 --provides=isce \ | ||
--maintainer=piyush.agram@jpl.nasa.gov \ | ||
--description="InSAR Scientific Computing Environment v2 (${hash})" | ||
|
||
FROM hysds/cuda-pge-base:latest | ||
|
||
# Set an encoding to make things work smoothly. | ||
ENV LANG en_US.UTF-8 | ||
|
||
# install ISCE from RPM | ||
COPY --from=0 /tmp/isce-2.3-1.x86_64.rpm /tmp/isce-2.3-1.x86_64.rpm | ||
|
||
# install isce and its minimal requirements | ||
RUN set -ex \ | ||
&& sudo /opt/conda/bin/conda install --yes \ | ||
gdal \ | ||
h5py \ | ||
libgdal \ | ||
pytest \ | ||
numpy \ | ||
fftw \ | ||
scipy \ | ||
hdf4 \ | ||
hdf5 \ | ||
netcdf4 \ | ||
&& sudo yum update -y \ | ||
&& sudo yum install -y uuid-devel x11-devel motif-devel gcc-gfortran \ | ||
&& cd /opt/conda/lib \ | ||
&& sudo unlink libuuid.so \ | ||
&& sudo unlink libuuid.so.1 \ | ||
&& sudo ln -s /lib64/libuuid.so.1.3.0 libuuid.so \ | ||
&& sudo ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 \ | ||
&& cd /lib64 \ | ||
&& ( test -f libgfortran.so || sudo ln -sv libgfortran.so.*.* libgfortran.so ) \ | ||
&& sudo yum install -y /tmp/isce-2.3-1.x86_64.rpm \ | ||
&& sudo yum clean all \ | ||
&& sudo rm -rf /var/cache/yum \ | ||
&& sudo rm /tmp/isce-2.3-1.x86_64.rpm |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# The directory in which ISCE will be built | ||
PRJ_SCONS_BUILD = $ISCE_BUILD_ROOT/isce2 | ||
|
||
# The directory into which ISCE will be installed | ||
PRJ_SCONS_INSTALL = $ISCE_INSTALL_ROOT/isce | ||
|
||
# The location of libraries, such as libstdc++, libfftw3 (for most system | ||
# it's /usr/lib and/or /usr/local/lib/ and/or /opt/local/lib) | ||
LIBPATH = /usr/lib64 /usr/lib /opt/conda/lib | ||
|
||
# The location of Python.h. If you have multiple installations of python | ||
# make sure that it points to the right one | ||
CPPPATH = /opt/conda/include/python3.7m /opt/conda/lib/python3.7/site-packages/numpy/core/include /opt/conda/include /usr/include | ||
|
||
# The location of the fftw3.h (most likely something like /usr/include or | ||
# /usr/local/include /opt/local/include | ||
FORTRANPATH = /usr/include /opt/conda/include | ||
|
||
# The location of your Fortran compiler. If not specified it will use the system one | ||
FORTRAN = /bin/gfortran | ||
|
||
# The location of your C compiler. If not specified it will use the system one | ||
CC = /bin/gcc | ||
|
||
# The location of your C++ compiler. If not specified it will use the system one | ||
CXX = /bin/g++ | ||
|
||
#libraries needed for mdx display utility | ||
MOTIFLIBPATH = /usr/lib64 # path to libXm.dylib | ||
X11LIBPATH = /usr/lib64 # path to libXt.dylib | ||
MOTIFINCPATH = /usr/include # path to location of the Xm | ||
# directory with various include files (.h) | ||
X11INCPATH = /usr/include # path to location of the X11 directory | ||
# with various include files | ||
|
||
# list of paths to search for shared libraries when running programs | ||
RPATH = /opt/conda/lib /usr/lib64 /usr/lib | ||
|
||
#Explicitly enable cuda if needed | ||
ENABLE_CUDA = True | ||
#CUDA_TOOLKIT_PATH = $YOUR_CUDA_INSTALLATION #/usr/local/cuda |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
export BUILD_DIR=/root/build-isce | ||
export ISCE_SRC=$HOME/isce2 | ||
export ISCE_INSTALL_ROOT=/opt/isce2 | ||
export ISCE_SRC=$ISCE_INSTALL_ROOT/src/isce2 | ||
export BUILD_DIR=$ISCE_INSTALL_ROOT/build-isce | ||
export SCONS_CONFIG_DIR=$ISCE_SRC/configuration | ||
export ISCE_BUILD_ROOT=$BUILD_DIR/build | ||
export ISCE_INSTALL_ROOT=/opt/isce2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters