Commit 5864afb6 authored by Fabio Luchetti's avatar Fabio Luchetti
Browse files

Add Dockerfile for Centos Stream 8

parent 98b94d1d
Pipeline #2524305 skipped with stage
# EOS Docker file for CentOS Stream 8
# Version 0.1
# @note: use el-8 compatible rpms until we set a stable el-8s equivalent
LABEL maintainer="Fabio Luchetti,, CERN 2021"
# Add extra repositories
COPY eos-docker/el-8/*.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/* 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/
# Set correct path for the dependency repository based on the EOS version
# which is being built
RUN sed -i "s/__EOS_CODENAME__/${EOS_CODENAME}/g" /etc/yum.repos.d/eos.repo
RUN mkdir /var/tmp/eosxd-cache/ /var/tmp/eosxd-journal/
RUN adduser eos-user
# Note: Docker will aggressively cache the following command.
# However, these packages don't change often
RUN dnf -y install epel-release dnf-plugins-core \
&& dnf -y --nogpg install \
at autoconf automake \
bzip2 \
cmake createrepo \
emacs epel-release \
gcc-c++ gdb git glibc-all-langpacks \
initscripts \
krb5-server krb5-workstation \
less libacl-devel libgfortran libtool \
nano \
parallel perl-Test-Harness python2 python2-pip python3 python3-pip \
redhat-lsb-core redis root rpm-build rsync \
sqlite sudo \
vim \
xauth \
&& dnf clean all
# Install manually libzstd which was dropped from EPEL
RUN dnf install -y \ \ \ \
# Install EOS from locally created repo
# Note: the ADD command will reset the docker cache
# and any commands after that point will be uncached
ENV EOSREPODIR="/repo/eos"
ADD cs8_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 \
&& dnf -y --nogpg install \
davix eos-archive eos-client eos-fuse eos-fusex eos-ns-inspect \
eos-server eos-test eos-testkeytab \
&& dnf clean all
RUN if [ "${EOS_CODENAME}" != "diopside" ]; then yum -y --nogpg install quarkdb; else yum -y --nogpg install eos-quarkdb; fi
# *************
# *************
# 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 dnf -y --nogpg install xrootd-client
# 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
# The system tests have a strong bias towards nobody having uid=99 guid=99
RUN usermod -u 99 nobody && groupmod -g 99 nobody
ENTRYPOINT ["/bin/bash"]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment