diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 44bcd9373b7bebd58f58fab823e4ea5ed518c590..834157c4f4b396e17896b6cfcf3f59e04ec5a09c 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -141,7 +141,9 @@ RUN chown lofaruser:lofaruser /home/lofaruser/.entrypoint && \ WORKDIR /home/lofaruser -COPY scripts/* /opt/lofar/scripts/ +COPY prefactor/scripts/* /opt/lofar/scripts/ +COPY prefactor/skymodels /data/skymodels +COPY prefactor/rfistrategies /data/rfistrategies RUN ln -sf /opt/lofar/scripts/* /usr/local/bin/ diff --git a/Docker/Dockerfile_ci b/Docker/Dockerfile_ci new file mode 100644 index 0000000000000000000000000000000000000000..44bcd9373b7bebd58f58fab823e4ea5ed518c590 --- /dev/null +++ b/Docker/Dockerfile_ci @@ -0,0 +1,157 @@ +FROM kernsuite/base:5 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 \ + 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 \ + libgsl-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/ -DPORTABLE=True &&\ + make -j2 && \ + make install -j2 + +ADD ./STMAN /src/STMAN/src +RUN cd /src/STMAN/ && \ + mkdir build && \ + cd build && \ + cmake ../src -DCMAKE_INSTALL_PREFIX=/usr/local/ -DPORTABLE=True && \ + make -j2 && \ + make install -j2 + +ADD ./Dysco /src/Dysco/src +RUN cd /src/Dysco/ && \ + mkdir build && \ + cd build && \ + cmake ../src -DCMAKE_INSTALL_PREFIX=/usr/local/ -DPORTABLE=True && \ + 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 \ + casacore-dev \ + 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 \ + libboost-python1.65-dev \ + libcfitsio5 \ + libgtkmm-3.0 \ + libfftw3-3 \ + libhdf5-cpp-100 \ + libpng16-16 \ + libstationresponse0 \ + libxml2 \ + python3.7 \ + python3-numpy \ + python3-scipy && \ + rm -rf /var/lib/apt/lists/* + + +RUN mkdir /home/lofaruser/ && \ + groupadd -r lofaruser && \ + useradd --no-log-init -r -g lofaruser lofaruser && \ + chown lofaruser:lofaruser /home/lofaruser + +ARG TOIL_VERSION=3.20.0 +LABEL toil.version=${TOIL_VERSION} + +ARG LSMTool_TAG=master +LABEL LSMTool.version.tag=${LSMTool_TAG} + +ARG LoSoTo_TAG=master +LABEL LoSoTo.version.tag=${LoSoTo_TAG} + +ARG STMAN_TAG=master +LABEL STMAN.version.tag=${STMAN_TAG} + +ARG Dysco_TAG=master +LABEL Dysco.version.tag=${Dysco_TAG} + + +RUN apt update && apt install -y nodejs python3-pip git wsclean libcasa-python3-2 wcslib-dev libcfitsio-dev +RUN python3 -m pip install cwltool cwl-runner -e "git://github.com/darafferty/LSMTool.git@${LSMTool_TAG}#egg=LSMTool" \ + "toil[cwl]"==${TOIL_VERSION} \ + matplotlib \ + python-casacore + +RUN python3 -m pip install -e "git+https://github.com/revoltek/losoto.git@${LoSoTo_TAG}#egg=LoSoTo" + +ADD L570745_uv_first10.MS.tar.xz /data +ADD skymodels.tar.gz /data/skymodels +ADD test_data/A-Team_lowres.sourcedb /data/A-Team_lowres.sourcedb +ADD test_data/example.h5 /data/example.h5 +ADD test_data/L570745_SB001_uv_MODEL.MS /data/L570745_SB001_uv_MODEL.MS +ADD losoto.patch /home/lofaruser/losoto.patch +RUN patch /src/losoto/losoto/operations/__init__.py /home/lofaruser/losoto.patch +ADD .entrypoint /home/lofaruser/.entrypoint +RUN chown lofaruser:lofaruser /home/lofaruser/.entrypoint && \ + chmod +rx /home/lofaruser/.entrypoint + +WORKDIR /home/lofaruser + +COPY scripts/* /opt/lofar/scripts/ + +RUN ln -sf /opt/lofar/scripts/* /usr/local/bin/ + +RUN chmod +rx /usr/local/bin/* +ENV PYTHONPATH="/opt/lofar/scripts:${PYTHONPATH}" +ENTRYPOINT ["/home/lofaruser/.entrypoint"] +USER lofaruser + +ARG DP3_TAG=master +ARG IDG_TAG=master + +LABEL IDG.version.tag=${IDG_TAG} +LABEL DP3.version.tag=${DP3_TAG}