Skip to content
Snippets Groups Projects
Commit 4066791a authored by Giuliano Taffoni's avatar Giuliano Taffoni
Browse files

Build for inaf docker registry and optimized dockerfile

parent 20a8ba84
No related branches found
No related tags found
No related merge requests found
-----BEGIN CERTIFICATE-----
MIIE+zCCA+OgAwIBAgIQCHC8xa8/25Wakctq7u/kZTANBgkqhkiG9w0BAQsFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMTQxMTE4MTIwMDAwWhcNMjQxMTE4MTIwMDAwWjBkMQswCQYDVQQG
EwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJQW1zdGVyZGFt
MQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wgQ0EgMzCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMV2Dw/ZQyk7bG3RR63eEL8jwnio
Snc18SNb4EweQefCMQC9iDdFdd25AhCAHo/tZCMERaegOTuBTc9jP8JJ/yKeiLDS
lrlcinQfkioq8hLIt2hUtVhBgUBoBhpPhSn7tU08D08/QJYbzqjMXjX/ZJj1dd10
VAWgNhEEEiRVY++Udy538RV27tOkWUUhn6i+0SftCuirOMo/h9Ha8Y+5Cx9E5+Ct
85XCFk3shKM6ktTPxn3mvcsaQE+zVLHzj28NHuO+SaNW5Ae8jafOHbBbV1bRxBz8
mGXRzUYvkZS/RYVJ+G1ShxwCVgEnFqtyLvRx5GG1IKD6JmlqCvGrn223zyUCAwEA
AaOCAaYwggGiMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMHkG
CCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu
Y29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln
aUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRw
Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js
MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk
SURSb290Q0EuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo
dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBRn/YggFCeYxwnS
JRm76VERY3VQYjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
hkiG9w0BAQsFAAOCAQEAqSg1esR71tonHqyYzyc2TxEydHTmQN0dzfJodzWvs4xd
xgS/FfQjZ4u5b5cE60adws3J0aSugS7JurHogNAcyTnBVnZZbJx946nw09E02DxJ
WYsamM6/xvLYMDX/6W9doK867mZTrqqMaci+mqege9iCSzMTyAfzd9fzZM2eY/lC
J1OuEDOJcjcV8b73HjWizsMt8tey5gvHacDlH198aZt+ziYaM0TDuncFO7pdP0GJ
+hY77gRuW6xWS++McPJKe1e9GW6LNgdUJi2GCZQfXzer8CM/jyxflp5HcahE3qm5
hS+1NGClXwmgmkMd1L8tRNaN2v11y18WoA5hwnA9Ng==
-----END CERTIFICATE-----
FROM morgan1971/vlbi-base:0.0.1 FROM git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-base:latest
MAINTAINER Giuliano Taffoni <giuliano.taffoni@inaf.it> MAINTAINER Giuliano Taffoni <giuliano.taffoni@inaf.it>
ENV CONTAINER_NAME='lovarVLBISoftware' ENV CONTAINER_NAME='lovarVLBISoftware'
USER root USER root
#
# Environmental variables
ENV J=40 #
ENV INSTALLDIR=/opt/lofar
ENV PYTHON_VERSION=2.7 ENV PYTHON_VERSION=2.7
# Path to where the patch for python-casacore's setup is stored. # Path to where the patch for python-casacore's setup is stored.
ENV PYTHON_CASACORE_PATCH=$INSTALLDIR/python-casacore/python_casacore_setup_patch.patch ENV PYTHON_CASACORE_PATCH=$INSTALLDIR/python-casacore/python_casacore_setup_patch.patch
...@@ -42,38 +41,53 @@ ENV WSCLEAN_VERSION=latest ...@@ -42,38 +41,53 @@ ENV WSCLEAN_VERSION=latest
ENV WCSLIB_VERSION=6.4 ENV WCSLIB_VERSION=6.4
ENV HDF5_USE_FILE_LOCKING=FALSE ENV HDF5_USE_FILE_LOCKING=FALSE
# Symlinks required for Fedora 31
RUN ln -s /usr/lib64/libboost_python37.so /usr/lib64/libboost_python3.so
RUN ln -s /usr/lib64/libboost_numpy37.so /usr/lib64/libboost_numpy3.so
RUN ln -s /usr/lib64/libboost_python27.so /usr/lib64/libboost_python.so
RUN ln -s /usr/lib64/libboost_numpy27.so /usr/lib64/libboost_numpy.so
RUN ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so
# #
# Setup the compiliong enviroment # Setup the compiling enviroment
# #
ARG CMAKE_C_COMPILER=/usr/bin/gcc
#ARG CFLAGS="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" ARG CMAKE_CXX_COMPILER=/usr/bin/g++
#ARG CXXFLAGS="-std=c++11 -mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" ARG CC_GLOBAL=/usr/bin/gcc
# Use below to optimize for a specific architecture ARG CXX_GLOBAL=/usr/bin/g++
#export CFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" ARG MPICC=/usr/lib64/openmpi/bin/mpicc
#export CXXFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" ARG MPICXX=/usr/lib64/openmpi/bin/mpic++
ARG CFLAGS_GLOBAL="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi"
ARG CXXFLAGS_GLOBAL="-std=c++11 -mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi"
ARG CASA_CXXFLAGS
ARG CASA_CFLAGS
ARG CPLUS_INCLUDE_PATH="/usr/include/openmpi-x86_64:/usr/include/c++/9:$CPLUS_INCLUDE_PATH:/usr/include/python2.7:$INSTALLDIR/casacore/include:/usr/include/boost:/usr/include/cfitsio:$INSTALLDIR/EveryBeam/include" ARG CPLUS_INCLUDE_PATH="/usr/include/openmpi-x86_64:/usr/include/c++/9:$CPLUS_INCLUDE_PATH:/usr/include/python2.7:$INSTALLDIR/casacore/include:/usr/include/boost:/usr/include/cfitsio:$INSTALLDIR/EveryBeam/include"
ARG CPATH="/usr/include/openmpi-x86_64/:/opt/intel/mkl/include:${INSTALLDIR}/casacore/include:$INSTALLDIR/LOFARBeam/include:$INSTALLDIR/idg/include:$INSTALLDIR/aoflagger/include:$INSTALLDIR/EveryBeam/include:$CPATH" ARG CPATH="/usr/include/openmpi-x86_64/:/opt/intel/mkl/include:${INSTALLDIR}/casacore/include:$INSTALLDIR/LOFARBeam/include:$INSTALLDIR/idg/include:$INSTALLDIR/aoflagger/include:$INSTALLDIR/EveryBeam/include:$CPATH"
ARG CMAKE_PREFIX_PATH="$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/lofar:$INSTALLDIR/LOFARBeam:/usr/lib64/openmpi:$INSTALLDIR/EveryBeam" ARG CMAKE_PREFIX_PATH="$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/lofar:$INSTALLDIR/LOFARBeam:/usr/lib64/openmpi:$INSTALLDIR/EveryBeam"
ARG LD_LIBRARY_PATH="$INSTALLDIR/aoflagger/lib:$INSTALLDIR/casacore/lib:$INSTALLDIR/idg/lib:$INSTALLDIR/LOFARBeam/lib:/usr/lib64/openmpi/lib/:$INSTALLDIR/EveryBeam/lib:LD_LIBRARY_PATH" ARG LD_LIBRARY_PATH="$INSTALLDIR/aoflagger/lib:$INSTALLDIR/casacore/lib:$INSTALLDIR/idg/lib:$INSTALLDIR/LOFARBeam/lib:/usr/lib64/openmpi/lib/:$INSTALLDIR/EveryBeam/lib:LD_LIBRARY_PATH"
ARG PATH="/usr/lib64/openmpi/bin:$PATH" ARG PATH="/usr/lib64/openmpi/bin:$PATH"
#ARG make=`which make`
ARG OLD_PYTHONPATH=$PYTHONPATH ARG OLD_PYTHONPATH=$PYTHONPATH
ARG NCORES=40
ARG INSTALLDIR=/opt/lofar
#
# Env to set at building
#
ENV CC=${CC_GLOBAL}
ENV CXX=${CXX_GLOBAL}
ENV CFLAGS=${CFLAGS_GLOBAL}
ENV CXXFLAGS=${CXXFLAGS_GLOBAL}
#
#
# Symlinks required for Fedora 31
#
RUN ln -s /usr/lib64/libboost_python37.so /usr/lib64/libboost_python3.so
RUN ln -s /usr/lib64/libboost_numpy37.so /usr/lib64/libboost_numpy3.so
RUN ln -s /usr/lib64/libboost_python27.so /usr/lib64/libboost_python.so
RUN ln -s /usr/lib64/libboost_numpy27.so /usr/lib64/libboost_numpy.so
RUN ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so
# #
# Setup the Python environment. # Setup the Python environment.
# #
RUN wget https://raw.githubusercontent.com/tikk3r/lofar-grid-hpccloud/fedora/requirements.txt -O $INSTALLDIR/requirements.txt RUN wget https://raw.githubusercontent.com/tikk3r/lofar-grid-hpccloud/fedora/requirements.txt -O $INSTALLDIR/requirements.txt
RUN wget https://raw.githubusercontent.com/tikk3r/lofar-grid-hpccloud/fedora/requirements3.txt -O $INSTALLDIR/requirements3.txt RUN wget https://raw.githubusercontent.com/tikk3r/lofar-grid-hpccloud/fedora/requirements3.txt -O $INSTALLDIR/requirements3.txt
RUN pip install xmlrunner RUN pip install xmlrunner && pip3 install xmlrunner
RUN pip3 install xmlrunner
RUN echo lofar-h5plot >> $INSTALLDIR/requirements3.txt RUN echo lofar-h5plot >> $INSTALLDIR/requirements3.txt
RUN pip --no-cache-dir install "virtualenv<20" RUN pip --no-cache-dir install "virtualenv<20"
RUN virtualenv $INSTALLDIR/pyenv-py3 --python=python3 RUN virtualenv $INSTALLDIR/pyenv-py3 --python=python3
...@@ -88,7 +102,7 @@ RUN source $INSTALLDIR/pyenv-py2/bin/activate && export HDF5_VERSION=1.10.5 & ...@@ -88,7 +102,7 @@ RUN source $INSTALLDIR/pyenv-py2/bin/activate && export HDF5_VERSION=1.10.5 &
# Install Montage # Install Montage
# #
RUN mkdir -p /opt/montage && cd /opt/montage && wget https://github.com/Caltech-IPAC/Montage/archive/v6.0.tar.gz -O Montage_v6.0.tar.gz && \ RUN mkdir -p /opt/montage && cd /opt/montage && wget https://github.com/Caltech-IPAC/Montage/archive/v6.0.tar.gz -O Montage_v6.0.tar.gz && \
tar xf Montage_v6.0.tar.gz && cd Montage-6.0 && make -j $J tar xf Montage_v6.0.tar.gz && cd Montage-6.0 && make -j $NCORES
# #
# Install difmap # Install difmap
...@@ -105,43 +119,44 @@ RUN rm -rf $INSTALLDIR/difmap/*.tar.gz ...@@ -105,43 +119,44 @@ RUN rm -rf $INSTALLDIR/difmap/*.tar.gz
# #
# Install PyBDSF # Install PyBDSF
# #
#ARG CFLAGS="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" ENV CFLAGS=${CFLAGS_GLOBAL}
RUN mkdir -p ${INSTALLDIR}/pybdsf && cd ${INSTALLDIR}/pybdsf && git clone https://github.com/lofar-astron/pybdsf pybdsf RUN mkdir -p ${INSTALLDIR}/pybdsf && cd ${INSTALLDIR}/pybdsf && git clone https://github.com/lofar-astron/pybdsf pybdsf
RUN if [ "${PYBDSF_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/pybdsf/pybdsf && git checkout ${PYBDSF_VERSION}; fi RUN if [ "${PYBDSF_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/pybdsf/pybdsf && git checkout ${PYBDSF_VERSION}; fi
RUN cd ${INSTALLDIR}/pybdsf/pybdsf && python setup.py install RUN cd ${INSTALLDIR}/pybdsf/pybdsf && python setup.py install && cd $INSTALLDIR && rm -rf $INSTALLDIR/pybdsf/pybdsf
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/pybdsf/pybdsf
# #
# Install CASAcore # Install CASAcore
# #
# Casacore 2.4.1 does not seem to deal well with AVX512 instructions, so disable them if needed # Casacore 2.4.1 does not seem to deal well with AVX512 instructions, so disable them if needed
#export CFLAGS="-march=skylake -mtune=skylake -mno-avx512f" ENV CFLAGS=$CASA_CFLAGS
#export CXXFLAGS="-march=skylake -mtune=skylake -mno-avx512f" ENV CXXFLAGS=$CASA_CXXFLAGS
RUN mkdir -p ${INSTALLDIR}/casacore/build && mkdir -p ${INSTALLDIR}/casacore/data RUN mkdir -p ${INSTALLDIR}/casacore/build && mkdir -p ${INSTALLDIR}/casacore/data && \
RUN cd $INSTALLDIR/casacore && git clone https://github.com/casacore/casacore.git src cd $INSTALLDIR/casacore && git clone https://github.com/casacore/casacore.git src && \
RUN if [ "${CASACORE_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/casacore/src && git checkout tags/${CASACORE_VERSION}; fi if [ "${CASACORE_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/casacore/src && git checkout tags/${CASACORE_VERSION}; fi
# Backport patch UVFITS for LOFAR. This is fixed in recent versions > May 26 2020 # Backport patch UVFITS for LOFAR. This is fixed in recent versions > May 26 2020
# wget https://patch-diff.githubusercontent.com/raw/casacore/casacore/pull/1033.patch -O $INSTALLDIR/casacore/1033.patch # wget https://patch-diff.githubusercontent.com/raw/casacore/casacore/pull/1033.patch -O $INSTALLDIR/casacore/1033.patch
# cd $INSTALLDIR/casacore/src && patch --fuzz 3 -p1 < $INSTALLDIR/casacore/1033.patch # cd $INSTALLDIR/casacore/src && patch --fuzz 3 -p1 < $INSTALLDIR/casacore/1033.patch
RUN cd ${INSTALLDIR}/casacore/data && wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar RUN cd ${INSTALLDIR}/casacore/data && wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar && \
RUN cd ${INSTALLDIR}/casacore/data && tar xf WSRT_Measures.ztar && rm WSRT_Measures.ztar cd ${INSTALLDIR}/casacore/data && tar xf WSRT_Measures.ztar && rm WSRT_Measures.ztar && \
RUN cd ${INSTALLDIR}/casacore/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/casacore/ -DDATA_DIR=${INSTALLDIR}/casacore/data -DBUILD_PYTHON=True -DUSE_OPENMP=True -DUSE_FFTW3=TRUE -DUSE_HDF5=True -DBUILD_PYTHON3=False ../src/ cd ${INSTALLDIR}/casacore/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/casacore/ -DDATA_DIR=${INSTALLDIR}/casacore/data -DBUILD_PYTHON=True -DUSE_OPENMP=True -DUSE_FFTW3=TRUE -DUSE_HDF5=True -DBUILD_PYTHON3=False ../src/
RUN cd ${INSTALLDIR}/casacore/build && make -s -j ${J} && make install RUN cd ${INSTALLDIR}/casacore/build && make -s -j ${NCORES} && make install && cd $INSTALLDIR && rm -rf $INSTALLDIR/casacore/build && rm -rf $INSTALLDIR/casacore/src
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/casacore/build && rm -rf $INSTALLDIR/casacore/src
# #
# Install Python-CASAcore # Install Python-CASAcore
# #
RUN mkdir ${INSTALLDIR}/python-casacore && cd ${INSTALLDIR}/python-casacore && git clone https://github.com/casacore/python-casacore RUN mkdir ${INSTALLDIR}/python-casacore && cd ${INSTALLDIR}/python-casacore && git clone https://github.com/casacore/python-casacore && \
RUN if [ "$PYTHON_CASACORE_VERSION" != "latest" ]; then cd ${INSTALLDIR}/python-casacore/python-casacore && git checkout tags/${PYTHON_CASACORE_VERSION}; fi if [ "$PYTHON_CASACORE_VERSION" != "latest" ]; then cd ${INSTALLDIR}/python-casacore/python-casacore && git checkout tags/${PYTHON_CASACORE_VERSION}; fi
RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/python-casacore/python-casacore && python setup.py build_ext -I${INSTALLDIR}/casacore/include/:/usr/include/python2.7:/usr/include/cfitsio -L${INSTALLDIR}/casacore/lib/:/usr/lib64/ && python setup.py install #--prefix=${INSTALLDIR}/python-casacore/ RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/python-casacore/python-casacore && python setup.py build_ext -I${INSTALLDIR}/casacore/include/:/usr/include/python2.7:/usr/include/cfitsio -L${INSTALLDIR}/casacore/lib/:/usr/lib64/ && python setup.py install #--prefix=${INSTALLDIR}/python-casacore/
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/python-casacore/python-casacore RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/python-casacore/python-casacore
# and then reset the flags again if needed
#export CFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" #
#export CXXFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" # reset to global
#
ENV CFLAGS=${CFLAGS_GLOBAL}
ENV CXXFLAGS=${CXXFLAGS_GLOBAL}
# #
# Install Dysco # Install Dysco
...@@ -149,7 +164,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/python-casacore/python-casacore ...@@ -149,7 +164,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/python-casacore/python-casacore
RUN mkdir -p $INSTALLDIR/dysco/build RUN mkdir -p $INSTALLDIR/dysco/build
RUN cd $INSTALLDIR/dysco && git clone https://github.com/aroffringa/dysco.git src && cd src RUN cd $INSTALLDIR/dysco && git clone https://github.com/aroffringa/dysco.git src && cd src
RUN if [ "$DYSCO_VERSION" != "latest" ]; then cd $INSTALLDIR/dysco/src && git checkout $DYSCO_VERSION; fi RUN if [ "$DYSCO_VERSION" != "latest" ]; then cd $INSTALLDIR/dysco/src && git checkout $DYSCO_VERSION; fi
RUN cd $INSTALLDIR/dysco/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/dysco -DCASACORE_ROOT_DIR=$INSTALLDIR/casacore -DPORTABLE=True ../src && make -s -j $J && make install RUN cd $INSTALLDIR/dysco/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/dysco -DCASACORE_ROOT_DIR=$INSTALLDIR/casacore -DPORTABLE=True ../src && make -s -j ${NCORES} && make install
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/dysco/build && rm -rf $INSTALLDIR/dysco/src RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/dysco/build && rm -rf $INSTALLDIR/dysco/src
# #
...@@ -158,7 +173,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/dysco/build && rm -rf $INSTALLDIR/dysco ...@@ -158,7 +173,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/dysco/build && rm -rf $INSTALLDIR/dysco
RUN mkdir -p ${INSTALLDIR}/aoflagger/build && cd ${INSTALLDIR}/aoflagger && git clone git://git.code.sf.net/p/aoflagger/code aoflagger && cd ${INSTALLDIR}/aoflagger/aoflagger RUN mkdir -p ${INSTALLDIR}/aoflagger/build && cd ${INSTALLDIR}/aoflagger && git clone git://git.code.sf.net/p/aoflagger/code aoflagger && cd ${INSTALLDIR}/aoflagger/aoflagger
RUN if [ "${AOFLAGGER_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/aoflagger/aoflagger && git checkout tags/${AOFLAGGER_VERSION}; fi RUN if [ "${AOFLAGGER_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/aoflagger/aoflagger && git checkout tags/${AOFLAGGER_VERSION}; fi
RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/aoflagger/ -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore -DBUILD_SHARED_LIBS=ON -DPORTABLE=True ../aoflagger RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/aoflagger/ -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore -DBUILD_SHARED_LIBS=ON -DPORTABLE=True ../aoflagger
RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && make -s -j ${J} && make install RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && make -s -j ${NCORES} && make install
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/aoflagger/aoflagger && rm -rf $INSTALLDIR/aoflagger/build && rm -rf $INSTALLDIR/aoflagger/src RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/aoflagger/aoflagger && rm -rf $INSTALLDIR/aoflagger/build && rm -rf $INSTALLDIR/aoflagger/src
# #
...@@ -172,11 +187,7 @@ RUN cd $INSTALLDIR/lofar/ && wget https://raw.githubusercontent.com/tikk3r/lofar ...@@ -172,11 +187,7 @@ RUN cd $INSTALLDIR/lofar/ && wget https://raw.githubusercontent.com/tikk3r/lofar
patch $INSTALLDIR/lofar/src/CMake/variants/GNUCXX11.cmake $PATCH_LOFAR && \ patch $INSTALLDIR/lofar/src/CMake/variants/GNUCXX11.cmake $PATCH_LOFAR && \
cd ${INSTALLDIR}/lofar/build/gnucxx11_opt cd ${INSTALLDIR}/lofar/build/gnucxx11_opt
#cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="StationResponse pystationresponse ParmDB pyparmdb Pipeline MS" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True ${INSTALLDIR}/lofar/src/ #cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="StationResponse pystationresponse ParmDB pyparmdb Pipeline MS" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True ${INSTALLDIR}/lofar/src/
ARG CMAKE_C_COMPILER=/usr/bin/gcc RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/lofar/build/gnucxx11_opt && cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="Pipeline" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True -DBUILD_PYTHON3=OFF ${INSTALLDIR}/lofar/src/ && make -s -j ${NCORES} && make install
ARG CMAKE_CXX_COMPILER=/usr/bin/g++
ARG CC=/usr/bin/gcc
ARG CXX=/usr/bin/g++
RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/lofar/build/gnucxx11_opt && CC=/usr/bin/gcc && CXX=/usr/bin/g++ && cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="Pipeline" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True -DBUILD_PYTHON3=OFF ${INSTALLDIR}/lofar/src/ && make -s -j $J && make install
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/lofar/build && rm -rf $INSTALLDIR/lofar/src RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/lofar/build && rm -rf $INSTALLDIR/lofar/src
# #
...@@ -192,7 +203,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/msoverview ...@@ -192,7 +203,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/msoverview
# Install the standalone StationResponse libraries. # Install the standalone StationResponse libraries.
# #
RUN mkdir -p $INSTALLDIR/LOFARBeam/build && cd $INSTALLDIR/LOFARBeam && git clone https://github.com/lofar-astron/LOFARBeam.git src RUN mkdir -p $INSTALLDIR/LOFARBeam/build && cd $INSTALLDIR/LOFARBeam && git clone https://github.com/lofar-astron/LOFARBeam.git src
RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd $INSTALLDIR/LOFARBeam/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar ../src && make -j $J && make install RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd $INSTALLDIR/LOFARBeam/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar ../src && make -j ${NCORES} && make install
RUN touch /opt/lofar/lofar/lib64/python2.7/site-packages/lofar/__init__.py RUN touch /opt/lofar/lofar/lib64/python2.7/site-packages/lofar/__init__.py
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/LOFARBeam/build && rm -rf $INSTALLDIR/LOFARBeam/src RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/LOFARBeam/build && rm -rf $INSTALLDIR/LOFARBeam/src
...@@ -203,14 +214,14 @@ RUN mkdir -p $INSTALLDIR/EveryBeam/build && cd $INSTALLDIR/EveryBeam && git clon ...@@ -203,14 +214,14 @@ RUN mkdir -p $INSTALLDIR/EveryBeam/build && cd $INSTALLDIR/EveryBeam && git clon
cd src && git checkout $EVERYBEAM_VERSION && \ cd src && git checkout $EVERYBEAM_VERSION && \
cd $INSTALLDIR/EveryBeam/build && \ cd $INSTALLDIR/EveryBeam/build && \
cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/EveryBeam ../src && \ cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/EveryBeam ../src && \
make -j $J && make install make -j ${NCORES} && make install
# #
# Install DPPP # Install DPPP
# #
RUN mkdir -p $INSTALLDIR/DPPP/build && git clone https://github.com/lofar-astron/DP3.git $INSTALLDIR/DPPP/src && \ RUN mkdir -p $INSTALLDIR/DPPP/build && git clone https://github.com/lofar-astron/DP3.git $INSTALLDIR/DPPP/src && \
cd $INSTALLDIR/DPPP/src && git checkout tags/${DPPP_VERSION} cd $INSTALLDIR/DPPP/src && git checkout tags/${DPPP_VERSION}
RUN cd $INSTALLDIR/DPPP/build && cmake3 -DCMAKE_CXX_FLAGS="-D_GLIB_USE_CXX_ABI=1 -DBOOST_NO_CXX11_SCOPED_ENUMS" -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLDIR/DPPP -DLOFAR_STATION_RESPONSE_DIR:PATH=$INSTALLDIR/lofar/include -DLOFAR_STATION_RESPONSE_LIB:FILEPATH=$INSTALLDIR/lofar/lib/libstationresponse.so -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include -DAOFLAGGER_INCLUDE_DIR=$INSTALLDIR/aoflagger/include -DAOFLAGGER_LIB=$INSTALLDIR/aoflagger/lib/libaoflagger.so ../src && make -s -j $J && make install RUN cd $INSTALLDIR/DPPP/build && cmake3 -DCMAKE_CXX_FLAGS="-D_GLIB_USE_CXX_ABI=1 -DBOOST_NO_CXX11_SCOPED_ENUMS" -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLDIR/DPPP -DLOFAR_STATION_RESPONSE_DIR:PATH=$INSTALLDIR/lofar/include -DLOFAR_STATION_RESPONSE_LIB:FILEPATH=$INSTALLDIR/lofar/lib/libstationresponse.so -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include -DAOFLAGGER_INCLUDE_DIR=$INSTALLDIR/aoflagger/include -DAOFLAGGER_LIB=$INSTALLDIR/aoflagger/lib/libaoflagger.so ../src && make -s -j ${NCORES} && make install
RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/DPPP/build && rm -rf $INSTALLDIR/DPPP/src RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/DPPP/build && rm -rf $INSTALLDIR/DPPP/src
############################################ ############################################
...@@ -266,16 +277,16 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/losoto ...@@ -266,16 +277,16 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/losoto
RUN mkdir $INSTALLDIR/wsclean && cd ${INSTALLDIR}/wsclean && git clone https://gitlab.com/aroffringa/wsclean.git && \ RUN mkdir $INSTALLDIR/wsclean && cd ${INSTALLDIR}/wsclean && git clone https://gitlab.com/aroffringa/wsclean.git && \
if [ "$WSCLEAN_VERSION" != "latest" ]; then cd ${INSTALLDIR}/wsclean/wsclean && git checkout $WSCLEAN_VERSION; fi if [ "$WSCLEAN_VERSION" != "latest" ]; then cd ${INSTALLDIR}/wsclean/wsclean && git checkout $WSCLEAN_VERSION; fi
RUN cd ${INSTALLDIR}/wsclean/wsclean && mkdir build && cd build RUN cd ${INSTALLDIR}/wsclean/wsclean && mkdir build && cd build
ARG CC=/usr/lib64/openmpi/bin/mpicc ENV CC=${MPICC}
ARG CXX=/usr/lib64/openmpi/bin/mpic++ ENV CXX=${MPICXX}
RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/wsclean/wsclean/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/wsclean -DPORTABLE=True -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include .. && \ RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/wsclean/wsclean/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/wsclean -DPORTABLE=True -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include .. && \
make -j ${J} && \ make -j ${NCORES} && \
make install && \ make install && \
cd $INSTALLDIR && rm -rf $INSTALLDIR/wsclean/wsclean cd $INSTALLDIR && rm -rf $INSTALLDIR/wsclean/wsclean
# #
# Switch back to normal compilers # Switch back to normal compilers
ARG CC=/usr/bin/gcc ENV CC=${CC_GLOBAL}
ARG CXX=/usr/bin/g++ ENV CXX=${CXX_GLOBAL}
# #
# #
# Install DS9 # Install DS9
......
#!/bin/bash #!/bin/bash
if [ 'xxx${VERSION}' == 'xxx' ]; then export SSL_CERT_FILE=${PWD}/DigiCertCA.crt
docker login git.ia2.inaf.it:5050
if [ "xxx${VERSION}" = "xxx" ]; then
VERSION='latest' VERSION='latest'
fi fi
docker build -t morgan1971/vlbi-base:${VERSION} -f Dockerfile.base . docker build -t git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-base:${VERSION} -f Dockerfile.base .
#!/bin/bash #!/bin/bash
if [ 'xxx${VERSION}' == 'xxx' ]; then if [ "xxx${VERSION}" = "xxx" ]; then
VERSION='latest' VERSION='latest'
fi fi
export SSL_CERT_FILE=${PWD}/DigiCertCA.crt
docker login git.ia2.inaf.it:5050
docker build -t morgan1971/skadc-software:${VERSION} -f Dockerfile . # Use below to optimize for a specific architecture
# docker build -t git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-sw:${VERSION} --build-arg CFLAGS_GLOBAL="-march=skylake-avx512 -mtune=skylake-avx512" \
# --build-arg CXXFLAGS_GLOBAL="-march=skylake-avx512 -mtune=skylake-avx512" -f Dockerfile .
#
# Default values
#
# CMAKE_C_COMPILER=/usr/bin/gcc
# CMAKE_CXX_COMPILER=/usr/bin/g++
# CC_GLOBAL=/usr/bin/gcc
# CXX_GLOBAL=/usr/bin/g++
# MPICC=/usr/lib64/openmpi/bin/mpicc
# MPICXX=/usr/lib64/openmpi/bin/mpic++
# CFLAGS_GLOBAL="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi"
# CXXFLAGS_GLOBAL="-std=c++11 -mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi"
# CASA_CXXFLAGS
# CASA_CFLAGS
docker build -t git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-sw:${VERSION} -f Dockerfile .
#!/bin/bash
#
# This Script allows to execute the container using singularity
# in an isolated enviroment, home directory and tmp are not
# shared directly and removed at the end of the run, persistent data
# is saved in /data
#
# author <giuliano.taffoni@inaf.it>
#
export CONTAINER_NAME=git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-sw
export CONTAINER_VERSION=0.1.0
export BASE_PORT=
if [ 'XXX'$1 = 'XXX' ]; then
COMMAND=
else
COMMAND=$1
fi
export SINGULARITYENV_AUTH_USER=testpass
HOMEDIR=`mktemp -d -t singularity_XXXXXXX`
mkdir $HOMEDIR/tmp
mkdir $HOMEDIR/home
singularity run --pid --no-home --home=/home/skauser --workdir ${HOMEDIR}/tmp -B${HOMEDIR}:/home/ -B`pwd`:/data --containall --cleanenv docker://${CONTAINER_NAME}:${CONTAINER_VERSION} $COMMAND
rm -fr ${HOMEDIR}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment