|
| 1 | +# Origin: https://github.com/giovtorres/slurm-docker-cluster/tree/c9aa93c080567121c6b28913152a1cd696465985 |
| 2 | +# Modified Dockerfile to install uv, cats and jq |
| 3 | +FROM rockylinux:8 |
| 4 | + |
| 5 | +LABEL org.opencontainers.image.source="https://github.com/giovtorres/slurm-docker-cluster" \ |
| 6 | + org.opencontainers.image.title="slurm-docker-cluster" \ |
| 7 | + org.opencontainers.image.description="Slurm Docker cluster on Rocky Linux 8" \ |
| 8 | + org.label-schema.docker.cmd="docker-compose up -d" \ |
| 9 | + maintainer="Giovanni Torres" |
| 10 | + |
| 11 | +RUN set -ex \ |
| 12 | + && yum makecache \ |
| 13 | + && yum -y update \ |
| 14 | + && yum -y install dnf-plugins-core \ |
| 15 | + && yum config-manager --set-enabled powertools \ |
| 16 | + && yum -y install \ |
| 17 | + wget \ |
| 18 | + bzip2 \ |
| 19 | + perl \ |
| 20 | + gcc \ |
| 21 | + gcc-c++\ |
| 22 | + git \ |
| 23 | + gnupg \ |
| 24 | + make \ |
| 25 | + munge \ |
| 26 | + munge-devel \ |
| 27 | + python3-devel \ |
| 28 | + python3-pip \ |
| 29 | + python3 \ |
| 30 | + mariadb-server \ |
| 31 | + mariadb-devel \ |
| 32 | + psmisc \ |
| 33 | + bash-completion \ |
| 34 | + vim-enhanced \ |
| 35 | + http-parser-devel \ |
| 36 | + json-c-devel \ |
| 37 | + jq \ |
| 38 | + && yum clean all \ |
| 39 | + && rm -rf /var/cache/yum |
| 40 | + |
| 41 | +RUN alternatives --set python /usr/bin/python3 |
| 42 | + |
| 43 | +RUN pip3 install Cython pytest |
| 44 | + |
| 45 | +# install uv |
| 46 | +RUN curl -LsSf https://astral.sh/uv/install.sh | sh |
| 47 | + |
| 48 | +ENV PATH="/root/.local/bin:${PATH}" |
| 49 | + |
| 50 | +RUN uv tool install climate-aware-task-scheduler && cp /root/.local/bin/cats /usr/local/bin/ |
| 51 | + |
| 52 | +ARG GOSU_VERSION=1.17 |
| 53 | + |
| 54 | +RUN set -ex \ |
| 55 | + && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64" \ |
| 56 | + && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc" \ |
| 57 | + && export GNUPGHOME="$(mktemp -d)" \ |
| 58 | + && gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |
| 59 | + && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ |
| 60 | + && rm -rf "${GNUPGHOME}" /usr/local/bin/gosu.asc \ |
| 61 | + && chmod +x /usr/local/bin/gosu \ |
| 62 | + && gosu nobody true |
| 63 | + |
| 64 | +ARG SLURM_TAG |
| 65 | + |
| 66 | +RUN set -x \ |
| 67 | + && git clone -b ${SLURM_TAG} --single-branch --depth=1 https://github.com/SchedMD/slurm.git \ |
| 68 | + && pushd slurm \ |
| 69 | + && ./configure --enable-debug --prefix=/usr --sysconfdir=/etc/slurm \ |
| 70 | + --with-mysql_config=/usr/bin --libdir=/usr/lib64 \ |
| 71 | + && make install \ |
| 72 | + && install -D -m644 etc/cgroup.conf.example /etc/slurm/cgroup.conf.example \ |
| 73 | + && install -D -m644 etc/slurm.conf.example /etc/slurm/slurm.conf.example \ |
| 74 | + && install -D -m644 etc/slurmdbd.conf.example /etc/slurm/slurmdbd.conf.example \ |
| 75 | + && install -D -m644 contribs/slurm_completion_help/slurm_completion.sh /etc/profile.d/slurm_completion.sh \ |
| 76 | + && popd \ |
| 77 | + && rm -rf slurm \ |
| 78 | + && groupadd -r --gid=990 slurm \ |
| 79 | + && useradd -r -g slurm --uid=990 slurm \ |
| 80 | + && mkdir /etc/sysconfig/slurm \ |
| 81 | + /var/spool/slurmd \ |
| 82 | + /var/run/slurmd \ |
| 83 | + /var/run/slurmdbd \ |
| 84 | + /var/lib/slurmd \ |
| 85 | + /var/log/slurm \ |
| 86 | + /data \ |
| 87 | + && touch /var/lib/slurmd/node_state \ |
| 88 | + /var/lib/slurmd/front_end_state \ |
| 89 | + /var/lib/slurmd/job_state \ |
| 90 | + /var/lib/slurmd/resv_state \ |
| 91 | + /var/lib/slurmd/trigger_state \ |
| 92 | + /var/lib/slurmd/assoc_mgr_state \ |
| 93 | + /var/lib/slurmd/assoc_usage \ |
| 94 | + /var/lib/slurmd/qos_usage \ |
| 95 | + /var/lib/slurmd/fed_mgr_state \ |
| 96 | + && chown -R slurm:slurm /var/*/slurm* \ |
| 97 | + && /sbin/create-munge-key |
| 98 | + |
| 99 | +COPY slurm.conf /etc/slurm/slurm.conf |
| 100 | +COPY slurmdbd.conf /etc/slurm/slurmdbd.conf |
| 101 | +RUN set -x \ |
| 102 | + && chown slurm:slurm /etc/slurm/slurmdbd.conf \ |
| 103 | + && chmod 600 /etc/slurm/slurmdbd.conf |
| 104 | + |
| 105 | + |
| 106 | +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh |
| 107 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] |
| 108 | + |
| 109 | +CMD ["slurmdbd"] |
0 commit comments