|
1 | | -FROM rockylinux:9.2 |
2 | | - |
3 | | -ENV LC_ALL=en_US.utf8 |
4 | | -ENV LANG=en_US.utf8 |
5 | | - |
6 | | -LABEL org.opencontainers.image.source="https://github.com/giovtorres/slurm-docker-cluster" \ |
7 | | - org.opencontainers.image.title="slurm-docker-cluster" \ |
8 | | - org.opencontainers.image.description="Slurm Docker cluster on CentOS 7" \ |
9 | | - org.label-schema.docker.cmd="docker-compose up -d" \ |
10 | | - maintainer="Giovanni Torres" |
11 | | - |
12 | | -ARG SLURM_TAG=slurm-22-05-9-1 |
13 | | -ARG GOSU_VERSION=1.11 |
14 | | - |
15 | | -COPY --from=ghcr.io/astral-sh/uv:0.4.20 /uv /bin/uv |
16 | | - |
17 | | -RUN set -ex \ |
18 | | - && dnf makecache \ |
19 | | - && dnf -y update \ |
20 | | - && dnf -y install dnf-plugins-core https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \ |
21 | | - && dnf config-manager --enable epel \ |
22 | | - && dnf config-manager --enable crb \ |
23 | | - && dnf -y install \ |
24 | | - wget \ |
25 | | - bzip2 \ |
26 | | - perl \ |
27 | | - gcc \ |
28 | | - gcc-c++\ |
29 | | - git \ |
30 | | - glibc-langpack-en \ |
31 | | - gnupg \ |
32 | | - make \ |
33 | | - munge \ |
34 | | - munge-devel \ |
35 | | - python39 \ |
36 | | - python3-devel \ |
37 | | - python3-pip \ |
38 | | - mariadb-server \ |
39 | | - mariadb-devel \ |
40 | | - psmisc \ |
41 | | - slurm-contribs \ |
42 | | - bash-completion \ |
43 | | - vim-enhanced \ |
44 | | - && dnf clean all \ |
45 | | - && rm -rf /var/cache/yum \ |
46 | | - && ln -s /usr/bin/python3 /usr/bin/python |
47 | | - |
48 | | - |
49 | | - |
50 | | -RUN set -ex \ |
51 | | - && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64" \ |
52 | | - && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc" \ |
53 | | - && export GNUPGHOME="$(mktemp -d)" \ |
54 | | - # See https://github.com/tianon/gosu/issues/17#issuecomment-348464529 |
55 | | - && ( gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |
56 | | - || gpg --keyserver pgp.mit.edu --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |
57 | | - || gpg --keyserver keyserver.pgp.com --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |
58 | | - || gpg --keyserver keyserver.ubuntu.com --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |
59 | | - ) \ |
60 | | - && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ |
61 | | - && rm -rf "${GNUPGHOME}" /usr/local/bin/gosu.asc \ |
62 | | - && chmod +x /usr/local/bin/gosu \ |
63 | | - && gosu nobody true |
64 | | - |
65 | | -RUN set -x \ |
66 | | - && git clone --depth 1 --branch $SLURM_TAG https://github.com/SchedMD/slurm.git \ |
67 | | - && pushd slurm \ |
68 | | - && ./configure --enable-debug --prefix=/usr --sysconfdir=/etc/slurm \ |
69 | | - --with-mysql_config=/usr/bin --libdir=/usr/lib64 \ |
70 | | - && make install \ |
71 | | - && install -D -m644 etc/cgroup.conf.example /etc/slurm/cgroup.conf.example \ |
72 | | - && install -D -m644 etc/slurm.conf.example /etc/slurm/slurm.conf.example \ |
73 | | - && install -D -m644 etc/slurmdbd.conf.example /etc/slurm/slurmdbd.conf.example \ |
74 | | - && install -D -m644 contribs/slurm_completion_help/slurm_completion.sh /etc/profile.d/slurm_completion.sh \ |
75 | | - && popd \ |
76 | | - && rm -rf slurm \ |
77 | | - && groupadd -r --gid=1001 slurm \ |
78 | | - && useradd -r -g slurm --uid=1001 slurm \ |
79 | | - && mkdir /etc/sysconfig/slurm \ |
| 1 | +ARG UV_VERSION="0.7.0" |
| 2 | + |
| 3 | +FROM ghcr.io/astral-sh/uv:$UV_VERSION AS uv |
| 4 | + |
| 5 | +FROM debian:bookworm |
| 6 | + |
| 7 | +ARG SLURM_VERSION="24.05.4" |
| 8 | +ARG SLURM_USER_UID=990 |
| 9 | +ARG SLURM_USER_GID=990 |
| 10 | +ARG MYSQL_CONFIG_VERSION="0.8.34" |
| 11 | + |
| 12 | +COPY --from=uv /uv /bin/uv |
| 13 | + |
| 14 | +RUN set -xe \ |
| 15 | + && apt-get update \ |
| 16 | + && apt-get install -y curl gnupg lsb-release wget |
| 17 | +RUN curl -Lo /tmp/mysql-apt-config.deb "https://dev.mysql.com/get/mysql-apt-config_$MYSQL_CONFIG_VERSION-1_all.deb" |
| 18 | +RUN set -xe \ |
| 19 | + && dpkg -i /tmp/mysql-apt-config.deb \ |
| 20 | + && env DEBIAN_FRONTEND="noninteractive" dpkg-reconfigure mysql-apt-config \ |
| 21 | + && apt-get update \ |
| 22 | + && apt-get install --yes mysql-server |
| 23 | + |
| 24 | +RUN bash -c "set -xe && for package in 'smd' 'smd-client' 'smd-slurmd' 'smd-slurmctld' 'smd-slurmdbd' 'smd-sview'; do \ |
| 25 | + curl -Lo \"/tmp/slurm-\${package}.deb\" https://github.com/scalableminds/slurm-packages/releases/download/${SLURM_VERSION}/slurm-\${package}_${SLURM_VERSION}-1_amd64.deb; \ |
| 26 | +done" |
| 27 | +RUN apt-get install --yes -f /tmp/*.deb |
| 28 | +RUN rm /tmp/* |
| 29 | + |
| 30 | +RUN set -xe \ |
| 31 | + && addgroup --gid="$SLURM_USER_GID" slurm \ |
| 32 | + && adduser --system --uid="$SLURM_USER_UID" --ingroup slurm slurm \ |
| 33 | + && mkdir -p /etc/sysconfig/slurm \ |
80 | 34 | /var/spool/slurmd \ |
81 | 35 | /var/run/slurmd \ |
82 | 36 | /var/run/slurmdbd \ |
83 | 37 | /var/lib/slurmd \ |
84 | 38 | /var/log/slurm \ |
85 | 39 | /data \ |
86 | | - && touch /var/lib/slurmd/node_state \ |
87 | | - /var/lib/slurmd/front_end_state \ |
88 | | - /var/lib/slurmd/job_state \ |
89 | | - /var/lib/slurmd/resv_state \ |
90 | | - /var/lib/slurmd/trigger_state \ |
91 | | - /var/lib/slurmd/assoc_mgr_state \ |
92 | | - /var/lib/slurmd/assoc_usage \ |
93 | | - /var/lib/slurmd/qos_usage \ |
94 | | - /var/lib/slurmd/fed_mgr_state \ |
| 40 | + /run/munge \ |
95 | 41 | && chown -R slurm:slurm /var/*/slurm* \ |
96 | | - && /sbin/create-munge-key |
| 42 | + && chown -R munge:munge /run/munge |
97 | 43 |
|
98 | 44 | COPY --chown=slurm:slurm slurm.conf /etc/slurm/slurm.conf |
99 | 45 | COPY --chown=slurm:slurm slurmdbd.conf /etc/slurm/slurmdbd.conf |
100 | | - |
101 | 46 | RUN chmod 600 /etc/slurm/slurm.conf |
102 | 47 | RUN chmod 600 /etc/slurm/slurmdbd.conf |
103 | 48 |
|
104 | 49 | COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh |
105 | | - |
106 | 50 | ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] |
107 | | - |
108 | 51 | CMD ["slurmdbd"] |
0 commit comments