|
| 1 | +FROM centos:7 |
| 2 | + |
| 3 | +# docker build -t vanessa/slurm:18.08.6 . |
| 4 | + |
| 5 | +LABEL org.label-schema.vcs-url="https://github.com/vsoch/ood-compose" \ |
| 6 | + org.label-schema.docker.cmd="docker-compose up -d" \ |
| 7 | + org.label-schema.name="ood-composer" \ |
| 8 | + org.label-schema.description="Open On Demand with SLURM on Centos 7" \ |
| 9 | + maintainer="Vanessa Sochat" |
| 10 | + |
| 11 | +ARG SLURM_TAG=slurm-18-08-6-2 |
| 12 | +ARG GOSU_VERSION=1.11 |
| 13 | + |
| 14 | +RUN set -ex \ |
| 15 | + && yum makecache fast \ |
| 16 | + && yum -y update \ |
| 17 | + && yum -y install epel-release \ |
| 18 | + && yum -y install \ |
| 19 | + wget \ |
| 20 | + bzip2 \ |
| 21 | + perl \ |
| 22 | + gcc \ |
| 23 | + gcc-c++\ |
| 24 | + git \ |
| 25 | + gnupg \ |
| 26 | + make \ |
| 27 | + munge \ |
| 28 | + munge-devel \ |
| 29 | + python-devel \ |
| 30 | + python-pip \ |
| 31 | + python34 \ |
| 32 | + python34-devel \ |
| 33 | + python34-pip \ |
| 34 | + mariadb-server \ |
| 35 | + mariadb-devel \ |
| 36 | + psmisc \ |
| 37 | + bash-completion \ |
| 38 | + vim-enhanced \ |
| 39 | + && yum clean all \ |
| 40 | + && rm -rf /var/cache/yum |
| 41 | + |
| 42 | +RUN pip install Cython nose && pip3.4 install Cython nose |
| 43 | + |
| 44 | +RUN set -ex \ |
| 45 | + && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64" \ |
| 46 | + && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc" \ |
| 47 | + && export GNUPGHOME="$(mktemp -d)" \ |
| 48 | + && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |
| 49 | + && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ |
| 50 | + && rm -rf "${GNUPGHOME}" /usr/local/bin/gosu.asc \ |
| 51 | + && chmod +x /usr/local/bin/gosu \ |
| 52 | + && gosu nobody true |
| 53 | + |
| 54 | +RUN set -x \ |
| 55 | + && git clone https://github.com/SchedMD/slurm.git \ |
| 56 | + && pushd slurm \ |
| 57 | + && git checkout tags/$SLURM_TAG \ |
| 58 | + && ./configure --enable-debug --prefix=/usr --sysconfdir=/etc/slurm \ |
| 59 | + --with-mysql_config=/usr/bin --libdir=/usr/lib64 \ |
| 60 | + && make install \ |
| 61 | + && install -D -m644 etc/cgroup.conf.example /etc/slurm/cgroup.conf.example \ |
| 62 | + && install -D -m644 etc/slurm.conf.example /etc/slurm/slurm.conf.example \ |
| 63 | + && install -D -m644 etc/slurmdbd.conf.example /etc/slurm/slurmdbd.conf.example \ |
| 64 | + && install -D -m644 contribs/slurm_completion_help/slurm_completion.sh /etc/profile.d/slurm_completion.sh \ |
| 65 | + && popd \ |
| 66 | + && rm -rf slurm \ |
| 67 | + && groupadd -r --gid=995 slurm \ |
| 68 | + && useradd -r -g slurm --uid=995 slurm \ |
| 69 | + && mkdir /etc/sysconfig/slurm \ |
| 70 | + /var/spool/slurmd \ |
| 71 | + /var/run/slurmd \ |
| 72 | + /var/run/slurmdbd \ |
| 73 | + /var/lib/slurmd \ |
| 74 | + /var/log/slurm \ |
| 75 | + /data \ |
| 76 | + && touch /var/lib/slurmd/node_state \ |
| 77 | + /var/lib/slurmd/front_end_state \ |
| 78 | + /var/lib/slurmd/job_state \ |
| 79 | + /var/lib/slurmd/resv_state \ |
| 80 | + /var/lib/slurmd/trigger_state \ |
| 81 | + /var/lib/slurmd/assoc_mgr_state \ |
| 82 | + /var/lib/slurmd/assoc_usage \ |
| 83 | + /var/lib/slurmd/qos_usage \ |
| 84 | + /var/lib/slurmd/fed_mgr_state \ |
| 85 | + && chown -R slurm:slurm /var/*/slurm* \ |
| 86 | + && /sbin/create-munge-key |
| 87 | + |
| 88 | +COPY slurm.conf /etc/slurm/slurm.conf |
| 89 | +COPY slurmdbd.conf /etc/slurm/slurmdbd.conf |
| 90 | + |
| 91 | +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh |
| 92 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] |
| 93 | + |
| 94 | +# Install Open On Demand, Singularity |
| 95 | +RUN yum install -y net-tools openssh-server openssh-clients singularity && \ |
| 96 | + yum install -y epel-release centos-release-scl lsof sudo httpd24-mod_ssl httpd24-mod_ldap && \ |
| 97 | + yum install -y https://yum.osc.edu/ondemand/latest/ondemand-release-web-latest-1-2.el7.noarch.rpm && \ |
| 98 | + yum install --nogpgcheck -y ondemand && \ |
| 99 | + mkdir -p /etc/ood/config/clusters.d && \ |
| 100 | + mkdir -p /etc/ood/config/apps/shell |
| 101 | + |
| 102 | +COPY ./ood_portal.yml /etc/ood/config/ood_portal.yml |
| 103 | +RUN /opt/ood/ood-portal-generator/sbin/update_ood_portal && \ |
| 104 | + systemctl enable httpd24-httpd && \ |
| 105 | + groupadd ood && \ |
| 106 | + useradd --create-home --gid ood ood && \ |
| 107 | + echo -n "ood" | passwd --stdin ood && \ |
| 108 | + scl enable httpd24 -- htdbm -bc /opt/rh/httpd24/root/etc/httpd/.htpasswd.dbm ood ood |
| 109 | + |
| 110 | +COPY launch-httpd /usr/local/bin/ |
| 111 | +CMD ["/usr/local/bin/launch-httpd"] |
0 commit comments