# # Simple EOS Docker file # # Version 0.3 FROM centos:7 LABEL maintainer="Elvin Sindrilaru, esindril@cern.ch, CERN 2017" # Add extra repositories COPY eos-docker/el-7/*.repo /etc/yum.repos.d/ # Add helper scripts COPY eos-docker/image_scripts/*.sh / # Add configuration files for EOS instance COPY eos-docker/eos.sysconfig /etc/sysconfig/eos COPY eos-docker/xrd.cf.* eos-docker/krb5.conf /etc/ COPY eos-docker/fuse.eosdockertest.conf /etc/eos/fuse.eosdockertest.conf COPY eos-docker/fuse.conf /etc/eos/fuse.mount-1.conf COPY eos-docker/fuse.conf /etc/eos/fuse.mount-2.conf COPY eos-docker/fstfmd.dict /var/eos/md/ # Add configuration files for forwarding proxy server COPY eos-docker/xrootd.conf /etc/tmpfiles.d/ COPY eos-docker/xrootd-fwd-proxy.cfg /etc/xrootd/ RUN mkdir /var/tmp/eosxd-cache/ /var/tmp/eosxd-journal/ RUN adduser eos-user # Docker will aggressively cache the following command, but this is fine, since # these packages are not updated often. RUN yum -y --nogpg install \ at autoconf automake \ bzip2 \ centos-release-scl-rh cmake3 compat-libf2c-34 createrepo \ emacs \ gcc-c++ gdb git \ heimdal-server heimdal-workstation \ initscripts \ krb5-server krb5-workstation \ less libacl-devel libgfortran libtool \ nano \ parallel perl-Test-Harness python2 python2-pip python3 python3-pip \ redhat-lsb-core rpm-build \ sudo \ vim \ xauth \ yum-plugin-priorities \ && yum clean all # Pre install version-locking to 4.11.3 some xrootd dependencies to help yum resolve them later RUN yum -y --nogpg install xrootd-libs-4.11.3 xrootd-server-4.11.3 xrootd-server-libs-4.11.3 xrootd-client-4.11.3 xrootd-client-libs-4.11.3 # Install new EOS from created repo - the ADD command will reset the docker cache, # and any commands after that point will be uncached. ENV EOSREPODIR="/repo/eos" ADD cc7_no_sse_artifacts ${EOSREPODIR} # Special packages, must be installed un-cached. RUN createrepo ${EOSREPODIR} \ && echo -e "[eos-artifacts]\nname=EOS artifacts\nbaseurl=file://${EOSREPODIR}\ngpgcheck=0\nenabled=1\npriority=1" >> /etc/yum.repos.d/eos.repo \ && yum -y --nogpg install \ davix grid-hammer quarkdb \ eos-archive eos-client eos-debuginfo eos-fuse eos-fusex eos-ns-inspect eos-server eos-test eos-testkeytab \ && yum clean all # ************* # NOTE: !UGLY!* # ************* # This is an ugly hack but the FST ofs.tpc config requires /usr/bin/xrdcp # and this is provided by the xrootd-client package. With EOS having eos-xrootd # as dependency the xrdcp program is in /opt/eos/xrootd/bin/xrdcp and the # xrootd-client package is no longer installed and therefore starting the FSTs # fails. This happens on CC7 and C8. RUN yum install -y --nogpg install xrootd-client-4.11.3 # Generate a new forwardable keytab 'eos-test+' to replace the not-forwardable # one (installed by the eos-testkeytab package). # This is useful to deploy EOS on Kubernetes clusters running on CERN's Cloud # Infrastructure; you can remove these lines if you don't need one. RUN yes | xrdsssadmin -k eos-test del /etc/eos.keytab \ && yes | xrdsssadmin -u daemon -g daemon -k eos-test+ -n 1234567890123456789 add /etc/eos.keytab \ && chown daemon:daemon /etc/eos.keytab \ && chmod 400 /etc/eos.keytab # Change owner of /var/spool/xrootd directory to daemon RUN chown daemon:daemon /var/spool/xrootd ENTRYPOINT ["/bin/bash"]