Newer
Older

Jan David Mol
committed
#
# base
#
FROM lofar-base:${LOFAR_TAG}

Jan David Mol
committed
ENV AOFLAGGER_VERSION=2.8.0
# Run-time dependencies
RUN apt-get update && apt-get install -y python3-scipy liblog4cplus-1.1-9 libxml2 libboost-thread${BOOST_VERSION}.0 libboost-filesystem${BOOST_VERSION}.0 libboost-date-time${BOOST_VERSION}.0 libboost-signals${BOOST_VERSION}.0 libpng12-0 libsigc++-2.0-dev libxml++2.6-2v5 libgsl2 openssh-client libboost-regex${BOOST_VERSION}.0 gettext-base rsync python3-matplotlib ipython slurm-client libhdf5-cpp-11 && \
apt-get -y install python3-dev python3-setuptools && \
pip3 install xmlrunner pyfits pywcs python-monetdb && \
apt-get -y purge python3-dev python3-setuptools && \

Jan David Mol
committed
apt-get -y autoremove --purge
#
# *******************
# PyBDSF
# *******************
#
ENV PYBDSF_VERSION=v1.9.0
# Run-time dependencies
RUN apt-get update && apt-get install -y python3-numpy
# Build-time dependencies
RUN apt-get install -y git g++ gfortran libboost-python-dev python3-dev python3-setuptools python3-numpy-dev swig3.0 && \
mkdir ${INSTALLDIR}/pybdsf && \
cd ${INSTALLDIR}/pybdsf && git clone https://github.com/lofar-astron/pybdsf && \
cd ${INSTALLDIR}/pybdsf/pybdsf && git checkout ${PYBDSF_VERSION} && \
mkdir -p ${INSTALLDIR}/pybdsf/lib/python${PYTHON_VERSION}/site-packages/ && \
export PYTHONPATH=${INSTALLDIR}/pybdsf/lib/python${PYTHON_VERSION}/site-packages:${INSTALLDIR}/pybdsf/lib64/python${PYTHON_VERSION}/site-packages:$PYTHONPATH && cd ${INSTALLDIR}/pybdsf/pybdsf && python3 setup.py install --prefix=${INSTALLDIR}/pybdsf/ && \
apt-get -y purge git g++ gfortran libboost-python-dev python3-dev python3-setuptools python3-numpy-dev swig3.0
#
# *******************
# AOFlagger
# *******************
#
RUN apt-get update && apt-get install -y wget cmake g++ libxml++2.6-dev libpng12-dev libfftw3-dev libboost-filesystem${BOOST_VERSION}-dev libboost-date-time${BOOST_VERSION}-dev libboost-signals${BOOST_VERSION}-dev libboost-thread${BOOST_VERSION}-dev libcfitsio3-dev libopenblas-dev && \
mkdir -p ${INSTALLDIR}/aoflagger/build && \
bash -c "cd ${INSTALLDIR}/aoflagger && wget --retry-connrefused http://downloads.sourceforge.net/project/aoflagger/aoflagger-${AOFLAGGER_VERSION%%.?}.0/aoflagger-${AOFLAGGER_VERSION}.tar.bz2" && \
cd ${INSTALLDIR}/aoflagger && tar xf aoflagger-${AOFLAGGER_VERSION}.tar.bz2 && \
cd ${INSTALLDIR}/aoflagger/build && cmake -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore/ -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS="--std=c++11 -O2 -DNDEBUG" -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/aoflagger ../aoflagger-${AOFLAGGER_VERSION} && \
cd ${INSTALLDIR}/aoflagger/build && make -j ${J} && \
cd ${INSTALLDIR}/aoflagger/build && make install && \
bash -c "strip ${INSTALLDIR}/aoflagger/{lib,bin}/* || true" && \
bash -c "rm -rf ${INSTALLDIR}/aoflagger/{build,aoflagger-${AOFLAGGER_VERSION}}" && \
bash -c "rm -rf ${INSTALLDIR}/aoflagger/aoflagger-${AOFLAGGER_VERSION}.tar.bz2" && \
apt-get -y purge wget cmake g++ libxml++2.6-dev libpng12-dev libfftw3-dev libboost-filesystem${BOOST_VERSION}-dev libboost-date-time${BOOST_VERSION}-dev libboost-signals${BOOST_VERSION}-dev libboost-thread${BOOST_VERSION}-dev libcfitsio3-dev libopenblas-dev && \

Jan David Mol
committed
apt-get -y autoremove --purge
#
# *******************
# DYSCO
# *******************
#
ENV DYSCO_VERSION=1.0.1
RUN apt-get update && apt-get install -y git cmake g++ doxygen libboost-all-dev libgsl0-dev libhdf5-dev && \
mkdir ${INSTALLDIR}/dysco && \
cd ${INSTALLDIR}/dysco && git clone https://github.com/aroffringa/dysco && \
cd ${INSTALLDIR}/dysco/dysco && git checkout tags/v${DYSCO_VERSION} && \
mkdir build && \
cd build && \
cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/dysco/ -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore/ ../ && \
make -j 4 && \
make install && \
#mkdir -p ${INSTALLDIR}/dysco/lib/python${PYTHON_VERSION}/site-packages/ && \
#export PYTHONPATH=${INSTALLDIR}/dysco/lib/python${PYTHON_VERSION}/site-packages:${INSTALLDIR}/dysco/lib64/python${PYTHON_VERSION}/site-packages:$PYTHONPATH && \
apt-get -y purge git cmake g++ doxygen libboost-all-dev libgsl0-dev libhdf5-dev
ENV LD_LIBRARY_PATH=${INSTALLDIR}/dysco/lib:${LD_LIBRARY_PATH}
ENV PATH=${INSTALLDIR}/dysco/bin:${PATH}

Jan David Mol
committed
#
# *******************
# LOFAR
# *******************
#

Jan David Mol
committed
# Tell image build information
ENV LOFAR_BRANCH=${LOFAR_BRANCH_NAME} \

Jan David Mol
committed
LOFAR_REVISION=${LOFAR_REVISION} \
LOFAR_BUILDVARIANT=gnucxx11_optarch

Jan David Mol
committed
# Install run-time dependencies
RUN apt-get update && apt-get install -y libqpidmessaging2 libqpidtypes1 libpqxx-4.0 python3-psycopg2
# Install build-time dependencies
RUN apt-get update && apt-get install -y subversion cmake g++ gfortran bison flex liblog4cplus-dev libhdf5-dev libblitz0-dev libboost-dev libboost-python-dev python3-dev libxml2-dev pkg-config libpng12-dev libfftw3-dev libunittest++-dev libxml++2.6-dev libgsl-dev libboost-filesystem${BOOST_VERSION}-dev libboost-date-time${BOOST_VERSION}-dev libboost-thread${BOOST_VERSION}-dev libboost-regex${BOOST_VERSION} binutils-dev libcfitsio3-dev wcslib-dev libopenblas-dev libqpidmessaging2-dev libqpidtypes1-dev libpqxx-dev
RUN mkdir -p ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && \

Jan David Mol
committed
cd ${INSTALLDIR}/lofar && \

Jan David Mol
committed
svn --non-interactive -q co -r ${LOFAR_REVISION} -N ${LOFAR_BRANCH_URL} src; \

Jan David Mol
committed
svn --non-interactive -q up src/CMake && \
Thomas Jürges
committed
cd ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && cmake -DBUILD_PACKAGES=Offline -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/lofar/ -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCASAREST_ROOT_DIR=${INSTALLDIR}/casarest/ -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore/ -DAOFLAGGER_ROOT_DIR=${INSTALLDIR}/aoflagger/ -DBDSF_ROOT_DIR=/opt/pybdsf/lib/python${PYTHON_VERSION}/site-packages/ -DQPID_ROOT_DIR=/opt/qpid/ -DUSE_OPENMP=True ${INSTALLDIR}/lofar/src/ && \

Jan David Mol
committed
cd ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && sed -i '29,31d' include/ApplCommon/PosixTime.h && \
cd ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && make -j ${J} && \
cd ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && make install && \
bash -c "mkdir -p ${INSTALLDIR}/lofar/var/{log,run}" && \
bash -c "chmod a+rwx ${INSTALLDIR}/lofar/var/{log,run}" && \

Jan David Mol
committed
bash -c "strip ${INSTALLDIR}/lofar/{bin,sbin,lib64}/* || true" && \
bash -c "rm -rf ${INSTALLDIR}/lofar/{build,src}" && \
apt-get purge -y subversion cmake g++ gfortran bison flex liblog4cplus-dev libhdf5-dev libblitz0-dev libboost-dev libboost-python-dev python3-dev libxml2-dev pkg-config libpng12-dev libfftw3-dev libunittest++-dev libxml++2.6-dev libgsl-dev libboost-filesystem${BOOST_VERSION}-dev libboost-date-time${BOOST_VERSION}-dev libboost-thread${BOOST_VERSION}-dev binutils-dev libcfitsio3-dev wcslib-dev libopenblas-dev && \

Jan David Mol
committed
apt-get autoremove -y --purge
# install additional bashrc files
COPY ["bashrc.d", "${INSTALLDIR}/bashrc.d/"]