FROM lofarit/base4.0.16 USER root # Package dependencies COPY apt.sources.list /etc/apt/sources.list # Support large mlocks RUN echo "* - memlock unlimited" > /etc/security/limits.conf ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_PRIORITY critical ENV GNUCOMPILER 7 ENV DEB_SETUP_DEPENDENCIES \ dpkg-dev \ g++-$GNUCOMPILER \ gcc-$GNUCOMPILER \ libc-dev \ cmake \ gfortran-$GNUCOMPILER \ git \ wget \ subversion ENV DEB_DEPENCENDIES \ python3-pip \ libfftw3-dev \ python3-numpy \ libfreetype6 \ libfreetype6-dev \ libpng-dev \ pkg-config \ python3-dev \ libboost-all-dev \ libcfitsio-dev \ libhdf5-dev \ wcslib-dev \ libatlas-base-dev \ liblapack-dev \ python3-tk \ libreadline6-dev \ subversion \ liblog4cplus-dev \ libhdf5-dev \ libncurses5-dev \ libsofa1-dev \ flex \ bison \ libbison-dev \ # Reference image generation dependencies make RUN apt-get update RUN apt-get install -y $DEB_SETUP_DEPENDENCIES RUN apt-get install -y $DEB_DEPENCENDIES ENV PATH /usr/local/bin:$PATH ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH ENV PYTHONPATH /usr/local/lib/python2.7/site-packages:$PYTHONPATH # Latest GCC segfaults when compiling casacore RUN rm /usr/bin/gcc /usr/bin/g++ /usr/bin/cpp /usr/bin/cc RUN ln -s /usr/bin/gcc-$GNUCOMPILER /usr/bin/gcc RUN ln -s /usr/bin/g++-$GNUCOMPILER /usr/bin/g++ RUN ln -s /usr/bin/gcc-$GNUCOMPILER /usr/bin/cc RUN ln -s /usr/bin/g++-$GNUCOMPILER /usr/bin/cpp RUN ln -s /usr/bin/gfortran-$GNUCOMPILER /usr/bin/gfortran ##################################################################### # Add deployment keys ##################################################################### RUN mkdir -p /root/.ssh/ COPY keys/lofarit_ddf2_rsa /root/.ssh/lofarit_ddf2_rsa COPY keys/lofarit_killms_rsa /root/.ssh/lofarit_killms_rsa RUN chmod 600 /root/.ssh/lofarit_ddf2_rsa && chmod 600 /root/.ssh/lofarit_killms_rsa ##################################################################### # Get DDF from private repo ##################################################################### # Add github key(s) RUN ssh-keyscan github.com >> ~/.ssh/known_hosts # Clone RUN ssh-agent bash -c 'ssh-add /root/.ssh/lofarit_ddf2_rsa && cd /root/ && git clone git@github.com:cyriltasse/DDFacet' # Checkout RUN ssh-agent bash -c 'ssh-add /root/.ssh/lofarit_ddf2_rsa && cd /root/DDFacet && git pull && git checkout e98968d' ##################################################################### # Build DDF from source ##################################################################### RUN mkdir /opt/DDFacet # Copy DDFacet and SkyModel into the image RUN cp -a /root/DDFacet/DDFacet /opt/DDFacet/DDFacet && \ cp -a /root/DDFacet/SkyModel /opt/DDFacet/SkyModel && \ cp -a /root/DDFacet/MANIFEST.in /opt/DDFacet/MANIFEST.in && \ cp -a /root/DDFacet/setup.py /opt/DDFacet/setup.py && \ cp -a /root/DDFacet/setup.cfg /opt/DDFacet/setup.cfg && \ cp -a /root/DDFacet/README.rst /opt/DDFacet/README.rst && \ cp -a /root/DDFacet/pyproject.toml /opt/DDFacet/pyproject.toml && \ cp -a /root/DDFacet/.git /opt/DDFacet/.git && \ cp -a /root/DDFacet/.gitignore /opt/DDFacet/.gitignore && \ cp -a /root/DDFacet/.gitmodules /opt/DDFacet/.gitmodules # Finally install DDFacet RUN rm -rf /opt/DDFacet/DDFacet/cbuild RUN pip3 install -U pip setuptools wheel RUN python3 -m pip install pybind11 RUN python3 -m pip install tensorflow==1.8.0 RUN python3 -m pip install -U "/opt/DDFacet/[dft-support,moresane-support,testing-requirements,fits-beam-support]" RUN cd /opt/DDFacet/ && python3 setup.py build && cd / # Set MeqTrees Cattery path to installation directory ENV MEQTREES_CATTERY_PATH /usr/local/lib/python3.6/dist-packages/Cattery/ ENV PYTHONPATH $MEQTREES_CATTERY_PATH:$PYTHONPATH RUN python3 -m pip install numpy==1.17.0 RUN python3 -c "import Siamese" RUN python3 -c "import bdsf" # Perform some basic tests RUN DDF.py --help RUN MakeMask.py --help RUN MakeCatalog.py --help RUN MakeModel.py --help RUN MaskDicoModel.py --help RUN ClusterCat.py --help ##################################################################### # Get and build killMs ##################################################################### # Clone RUN ssh-agent bash -c 'ssh-add /root/.ssh/lofarit_killms_rsa && cd /opt/ && git clone git@github.com:cyriltasse/killMS' # Checkout RUN ssh-agent bash -c 'ssh-add /root/.ssh/lofarit_killms_rsa && cd /opt/killMS && git pull && git checkout 0607798' RUN pip3 install /opt/killMS RUN cd /opt/killMS; python3 setup.py build ##################################################################### # Remove deploymnet keys ##################################################################### RUN rm -f /root/.ssh/lofarit_ddf2_rsa && rm -f /root/.ssh/lofarit_killms_rsa ##################################################################### # DDF-PIPELINE ##################################################################### RUN pip3 install pyregion sshtunnel pymysql RUN cd /opt; git clone https://github.com/mhardcastle/ddf-pipeline RUN sed -e "s|INSTALLDIR|/opt|" /opt/ddf-pipeline/misc/DDF.sh > /opt/DDFacet/init.sh RUN cd /opt && git clone https://www.ict.inaf.it/gitlab/lofarit/container-data.git ##################################################################### # Switch back to lofar user and set env ##################################################################### USER lofar ENV DDF_PIPELINE_CATALOGS='/opt/container-data/bootstrap-cats/' ENV CONTAINER_NAME='ddfacet_ssd-py3_kms-lofar-release-4_0_16'