diff --git a/.gitattributes b/.gitattributes index 786f4056a41556e943031714646fb2b5704cc998..b343cf1fb6d2465e6c8170060a963f7ade97b44b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2369,6 +2369,9 @@ Docker/lofar-base/bashrc.d/50-lofar -text Docker/lofar-base/chuser.sh -text Docker/lofar-outputproc/Dockerfile.tmpl -text Docker/lofar-pipeline/Dockerfile.tmpl -text +Docker/lofar-pulp/Dockerfile.tmpl -text +Docker/lofar-pulp/bashrc -text +Docker/lofar-pulp/sudoers -text Docker/lofar-tbbwriter/Dockerfile -text Docker/lofar-tbbwriter/bashrc -text Docker/lofar-tbbwriter/chuser.sh -text diff --git a/Docker/CMakeLists.txt b/Docker/CMakeLists.txt index 2aab64bc7d23f4d08dd5f2203185f303f76552e8..a8965c57355c690988016853001b02ad7884e666 100644 --- a/Docker/CMakeLists.txt +++ b/Docker/CMakeLists.txt @@ -25,6 +25,7 @@ lofar_add_bin_program(versiondocker versiondocker.cc) set(DOCKER_TEMPLATE_DIRS lofar-base lofar-pipeline + lofar-pulp lofar-outputproc) # Note: "docker-template" only works as long as the sources are still around, @@ -60,6 +61,7 @@ install(DIRECTORY dynspec lofar-base lofar-pipeline + lofar-pulp lofar-outputproc lofar-tbbwriter DESTINATION share/docker diff --git a/Docker/lofar-pulp/Dockerfile.tmpl b/Docker/lofar-pulp/Dockerfile.tmpl new file mode 100644 index 0000000000000000000000000000000000000000..f214fa8d7659577aafe7d7fd87f2f78847624d16 --- /dev/null +++ b/Docker/lofar-pulp/Dockerfile.tmpl @@ -0,0 +1,62 @@ +# +# base +# +FROM pulp:latest + +COPY ["sudoers", "/etc/"] + +# Run-time dependencies +RUN sudo apt-get update && sudo apt-get install -y python-xmlrunner liblog4cplus-1.0-4 libxml2 libxml++2.6-2 openssh-client gettext-base rsync python-matplotlib +# +# ******************* +# QPID client +# ******************* +# + +ENV BOOST_VERSION=1.54 + +# Run-time dependencies +# QPID daemon legacy store would require: libaio1 libdb5.1++ +RUN sudo apt-get update && sudo apt-get install -y sasl2-bin libuuid1 libnss3 libnspr4 xqilla + +# Install +# QPID daemon legacy store would require: libaio-dev libdb5.1++-dev +RUN sudo apt-get update && sudo apt-get install -y ruby ruby-dev libsasl2-dev uuid-dev libxerces-c-dev libnss3-dev libnspr4-dev help2man libsslcommon2-dev libxqilla-dev && \ + mkdir /opt/qpid && \ + svn --non-interactive -q co https://svn.astron.nl/LOFAR/trunk/LCS/MessageBus/qpid/ /opt/qpid; \ + bash -c "HOME=/tmp /opt/qpid/local/sbin/build_qpid" && \ + bash -c "strip /opt/qpid/{bin,lib}/* || true" && \ + bash -c "rm -rf /tmp/sources" && \ + sudo apt-get purge -y ruby ruby-dev libsasl2-dev uuid-dev libxerces-c-dev libnss3-dev libnspr4-dev help2man libsslcommon2-dev libxqilla-dev && \ + sudo apt-get autoremove -y + +# +# ******************* +# LOFAR +# ******************* +# + +# Tell image build information +ENV LOFAR_BRANCH=${LOFAR_BRANCH_NAME} \ + LOFAR_TAG=${LOFAR_TAG} \ + LOFAR_REVISION=${LOFAR_REVISION} \ + LOFAR_BUILDVARIANT=gnu_optarch + +# Install +#some are already installed, but we need boost, and RUN sudo apt-get update && sudo apt-get install -y subversion cmake g++ gfortran bison flex liblog4cplus-dev libhdf5-dev libblitz0-dev python-dev libxml2-dev pkg-config libunittest++-dev libxml++2.6-dev binutils-dev && \ +RUN sudo apt-get update && sudo apt-get install -y liblog4cplus-dev libhdf5-dev libblitz0-dev libunittest++-dev libxml++2.6-dev binutils-dev && \ + mkdir -p ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && \ + cd ${INSTALLDIR}/lofar && \ + svn --non-interactive -q co -r ${LOFAR_REVISION} -N ${LOFAR_BRANCH_URL} src; \ + svn --non-interactive -q up src/CMake && \ + cd ${INSTALLDIR}/lofar/build/${LOFAR_BUILDVARIANT} && cmake -DBUILD_PACKAGES="Pipeline MessageBus OTDB_Services" -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/lofar/ -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore/ -DQPID_ROOT_DIR=/opt/qpid/ -DUSE_OPENMP=True ${INSTALLDIR}/lofar/src/ && \ + 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}" && \ + bash -c "strip ${INSTALLDIR}/lofar/{bin,sbin,lib64}/* || true" && \ + bash -c "rm -rf ${INSTALLDIR}/lofar/{build,src}" && \ + sudo apt-get purge -y liblog4cplus-dev libhdf5-dev libblitz0-dev libunittest++-dev libxml++2.6-dev binutils-dev && \ + sudo apt-get autoremove -y + +COPY ["bashrc", "/opt/"] diff --git a/Docker/lofar-pulp/bashrc b/Docker/lofar-pulp/bashrc new file mode 100644 index 0000000000000000000000000000000000000000..7c9e948ce7e52aefa446f3db4a7f8df05afc0d4b --- /dev/null +++ b/Docker/lofar-pulp/bashrc @@ -0,0 +1,11 @@ +#!/bin/bash + +# lofar +[ -r ${INSTALLDIR}/lofar/lofarinit.sh ] && source ${INSTALLDIR}/lofar/lofarinit.sh +export PATH PYTHONPATH LD_LIBRARY_PATH LOFARROOT + +# qpid +source ${INSTALLDIR}/qpid/.profile + +# lofarsoft +source ${LOFARSOFT}/devel_common/scripts/init.sh diff --git a/Docker/lofar-pulp/sudoers b/Docker/lofar-pulp/sudoers new file mode 100644 index 0000000000000000000000000000000000000000..24c18523f4bf099e24b3c37970c974deeb796927 --- /dev/null +++ b/Docker/lofar-pulp/sudoers @@ -0,0 +1 @@ +ALL ALL=(ALL) NOPASSWD:ALL