diff --git a/Docker/.entrypoint b/Docker/.entrypoint index f53c3f41f9628374b25b2a99529d29bcb313fed0..cc2b666b7d5c93c2a7e7ea6715c17acd498f338d 100644 --- a/Docker/.entrypoint +++ b/Docker/.entrypoint @@ -1,6 +1,5 @@ #!/bin/bash set -e -. /opt/lofarsoft/lofarinit.sh exec "$@" diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 85d8a5feb7af575419664f081c0cc82c6d3ff2c3..523e1bfa25c1d6607887df0c4ac2aa41e0e1e89e 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,13 +1,94 @@ -FROM lofaruser/imaging-pipeline +FROM kernsuite/base:4 as builder SHELL ["/bin/bash", "-c"] +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y \ + casacore-data \ + casacore-dev \ + libboost-python-dev \ + libcfitsio-dev \ + python-dev \ + python3-numpy \ + cmake \ + build-essential \ + libhdf5-serial-dev \ + libarmadillo-dev \ + lofar-dev \ + libboost-filesystem-dev \ + libboost-system-dev \ + libboost-date-time-dev \ + libboost-signals-dev \ + libboost-program-options-dev \ + libboost-test-dev \ + libxml2-dev \ + libpng-dev \ + pkg-config \ + aoflagger-dev \ + libgtkmm-3.0-dev \ + git \ + wget \ + libfftw3-dev + +RUN mkdir -p /src/ +WORKDIR /src/ + + +# Build the IDG version from source + + +ADD ./idg /src/idg/src +RUN mkdir idg/build && cd idg/build && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ ../src && make install -j2 + +ADD ./DP3 /src/dp3/src +RUN cd /src/dp3/ && \ + mkdir build && \ + cd build && \ + cmake ../src -DCMAKE_INSTALL_PREFIX=/usr/local/ &&\ + make -j2 && \ + make install -j2 + + +#---------------------------------------------- +FROM kernsuite/base:4 as runner + +COPY --from=builder /usr/local/ /usr/local + +SHELL ["/bin/bash", "-c"] + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y \ + aoflagger \ + casacore-data \ + libarmadillo8 \ + libboost-date-time1.65.1 \ + libboost-filesystem1.65.1 \ + libboost-python1.65.1 \ + libboost-program-options1.65.1 \ + libboost-system1.65.1 \ + libboost-signals1.65.1 \ + libboost-test1.65.1 \ + libcfitsio5 \ + libgtkmm-3.0 \ + libfftw3-3 \ + libhdf5-cpp-100 \ + libpng16-16 \ + libstationresponse0 \ + libxml2 \ + python3 \ + python3-casacore \ + python3-numpy + RUN mkdir /home/lofaruser/ && \ groupadd -r lofaruser && \ useradd --no-log-init -r -g lofaruser lofaruser && \ chown lofaruser:lofaruser /home/lofaruser +ARG LSMTool_TAG=master + RUN apt-get update && apt-get install -y nodejs python3-pip git wsclean -RUN python3 -m pip install cwltool cwl-runner git+https://github.com/darafferty/LSMTool +RUN python3 -m pip install cwltool cwl-runner -e "git://github.com/darafferty/LSMTool.git@${LSMTool_TAG}#egg=LSMTool" ADD L570745_uv_first10.MS.tar.xz /data ADD skymodels.tar.gz /data/skymodels @@ -21,3 +102,9 @@ RUN chmod +rx /usr/local/bin/* ENV PYTHONPATH="/usr/local/bin:${PYTHONPATH}" ENTRYPOINT ["/home/lofaruser/.entrypoint"] USER lofaruser + +ARG IDG_TAG=master +LABEL IDG.version.tag=${IDG_TAG} + +ARG DP3_TAG=master +LABEL DP3.version.tag=${DP3_TAG} diff --git a/Docker/build_docker.sh b/Docker/build_docker.sh index e16e7fe085650472f136a6989b4e5cf74b471b7b..33efd28ebad48c96dcd4baddce0c7a881e14a1e3 100755 --- a/Docker/build_docker.sh +++ b/Docker/build_docker.sh @@ -1,10 +1,32 @@ #! /bin/bash +set -e + +git_clone_or_pull () { + REPO=$1 + BRANCH=$2 + DIR=$3 + + git clone -single-branch -b "${BRANCH}" "${REPO}" "${DIR}" 2> /dev/null || git -C "${DIR}" pull +} + +# SOFTWARE VERSIONS +DP3_TAG=v4.1 +IDG_TAG=0.6 +LSMTool_TAG=v1.4.2 + +# FETCHES THE IDG +git_clone_or_pull https://gitlab.com/astron-idg/idg/ ${IDG_TAG} idg + +# FETCHES DP3 +git_clone_or_pull https://github.com/lofar-astron/DP3 ${DP3_TAG} DP3 + +# FETCHES THE SCRIPTS ONLY BRANCH=production REPO_URL=https://github.com/lofar-astron/prefactor -# FETCHES THE SCRIPTS ONLY svn checkout ${REPO_URL}/branches/${BRANCH}/scripts SCRIPT_PATH=$(realpath ${BASH_SOURCE[0]}) + DOCKER_PATH=$(dirname ${SCRIPT_PATH}) -docker build ${DOCKER_PATH} -t prefactor:latest +docker build ${DOCKER_PATH} --build-arg=IDG_TAG=${IDG_TAG} --build-arg=DP3_TAG=${DP3_TAG} --build-arg=LSMTool_TAG=${LSMTool_TAG} -t lofareosc/prefactor-ci