FROM centos:7

ARG USERNAME=foo
ARG UID=1000

# 2024-07-01: original yum repository was deprecated
RUN cp -p /etc/yum.repos.d/CentOS-Base.repo \
          /etc/yum.repos.d/CentOS-Base.repo.bak && \
    sed -e '/^mirrorlist=/s/^/#/' \
        -e '/^#baseurl=/s|^#baseurl=http://mirror|baseurl=http://vault|' \
	 /etc/yum.repos.d/CentOS-Base.repo.bak \
	>/etc/yum.repos.d/CentOS-Base.repo

RUN yum -y update \
 && yum -y install \
    git wget rpm-build sudo passwd \
    gcc make libtool \
    openssl-devel postgresql-devel \
    rdma-core-devel \
    postgresql postgresql-server \
    python3 ruby \
    libxslt docbook-style-xsl \
 && yum -y install epel-release \
 && yum -y install \
    globus-gssapi-gsi-devel \
    python36-docopt python36-tqdm \
 && pip3 install flake8 schema \
 && yum -y install \
    fuse fuse-devel libacl-devel \
    procps valgrind \
    myproxy globus-simple-ca \
    openssl11-devel \
    cyrus-sasl-devel cyrus-sasl-plain scitokens-cpp-devel \
    golang jq pandoc curl attr

RUN \
 # sshd
 yum -y install openssh-server \
 # sshd_config
 && mv /etc/ssh/sshd_config /etc/ssh/sshd_config.orig \
 && awk ' \
    /#PermitEmptyPasswords no/ { print "PermitEmptyPasswords yes"; next } \
    /UsePAM yes/ { print "UsePAM no"; next } \
    { print }' /etc/ssh/sshd_config.orig > /etc/ssh/sshd_config \
 # ssh_config
 && printf '%s\n' \
    'Host *' \
    '    StrictHostKeyChecking no' \
    >> /etc/ssh/ssh_config \
 && systemctl enable sshd

RUN useradd -m -u $UID -s /bin/bash $USERNAME \
 && echo "$USERNAME ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/$USERNAME \
 # delete passwd
 && passwd -d $USERNAME

RUN useradd -m _gfarmfs \
 && useradd -m _gfarmmd

RUN mv /etc/sudoers /etc/sudoers.orig \
 && awk '/secure_path/ { print $0 ":/usr/local/bin"; next}; {print}' \
        /etc/sudoers.orig > /etc/sudoers

# shut down systemd cleanly by "docker stop"
STOPSIGNAL SIGRTMIN+3
CMD ["/sbin/init"]
