Loading slurm-docker-cluster/Dockerfile 0 → 100644 +116 −0 Original line number Diff line number Diff line FROM rockylinux:9.2 LABEL org.opencontainers.image.source="https://github.com/giovtorres/slurm-docker-cluster" \ org.opencontainers.image.title="slurm-docker-cluster" \ org.opencontainers.image.description="Slurm Docker cluster on Rocky Linux 8" \ org.label-schema.docker.cmd="docker-compose up -d" \ maintainer="Giovanni Torres" ARG SLURM_TAG=slurm-21-08-6-1 ARG GOSU_VERSION=1.11 ARG SHARED_USER_NAME=user ARG SHARED_USER_UID=1000 ARG SHARED_GROUP_NAME=user ARG SHARED_GROUP_GID=1000 RUN set -ex \ && yum makecache \ && yum -y update \ && yum -y install dnf-plugins-core \ && yum config-manager --set-enabled crb \ && yum -y install \ wget \ bzip2 \ perl \ gcc \ gcc-c++\ gdb \ git \ gnupg \ make \ munge \ munge-devel \ python3-devel \ python3-pip \ python3 \ mariadb-server \ mariadb-devel \ psmisc \ bash-completion \ vim-enhanced \ http-parser-devel \ json-c-devel \ libibverbs-devel \ procps \ openssh-server \ pmix-devel \ && yum clean all \ && rm -rf /var/cache/yum RUN pip3 install Cython nose RUN set -ex \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc" \ && export GNUPGHOME="$(mktemp -d)" \ && gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ && rm -rf "${GNUPGHOME}" /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true RUN set -x \ && git clone -b ${SLURM_TAG} --single-branch --depth=1 https://github.com/SchedMD/slurm.git \ && pushd slurm \ && ./configure \ --enable-debug \ --prefix=/usr \ --sysconfdir=/etc/slurm \ --with-mysql_config=/usr/bin \ --libdir=/usr/lib64 \ --with-pmix \ && make install \ && install -D -m644 etc/cgroup.conf.example /etc/slurm/cgroup.conf.example \ && install -D -m644 etc/slurm.conf.example /etc/slurm/slurm.conf.example \ && install -D -m644 etc/slurmdbd.conf.example /etc/slurm/slurmdbd.conf.example \ && install -D -m644 contribs/slurm_completion_help/slurm_completion.sh /etc/profile.d/slurm_completion.sh \ && popd \ && rm -rf slurm \ && groupadd -r --gid=990 slurm \ && useradd -r -g slurm --uid=990 slurm \ && mkdir /etc/sysconfig/slurm \ /var/spool/slurmd \ /var/run/slurmd \ /var/run/slurmdbd \ /var/lib/slurmd \ /var/log/slurm \ /data \ && touch /var/lib/slurmd/node_state \ /var/lib/slurmd/front_end_state \ /var/lib/slurmd/job_state \ /var/lib/slurmd/resv_state \ /var/lib/slurmd/trigger_state \ /var/lib/slurmd/assoc_mgr_state \ /var/lib/slurmd/assoc_usage \ /var/lib/slurmd/qos_usage \ /var/lib/slurmd/fed_mgr_state \ && chown -R slurm:slurm /var/*/slurm* \ && /sbin/create-munge-key COPY slurm.conf /etc/slurm/slurm.conf COPY slurmdbd.conf /etc/slurm/slurmdbd.conf RUN set -x \ && chown slurm:slurm /etc/slurm/slurmdbd.conf \ && chmod 600 /etc/slurm/slurmdbd.conf RUN set -x \ && ssh-keygen -A RUN set -x \ && groupadd --gid=${SHARED_GROUP_GID} ${SHARED_GROUP_NAME} \ && useradd -g ${SHARED_GROUP_NAME} --uid=${SHARED_USER_UID} ${SHARED_USER_NAME} COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["slurmdbd"] slurm-docker-cluster/docker-compose.yml 0 → 100644 +84 −0 Original line number Diff line number Diff line version: "2.2" services: mysql: image: mariadb:10.10 hostname: mysql container_name: mysql environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: slurm_acct_db MYSQL_USER: slurm MYSQL_PASSWORD: password volumes: - var_lib_mysql:/var/lib/mysql slurmdbd: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} build: context: . args: SLURM_TAG: ${SLURM_TAG:-slurm-21-08-6-1} command: ["slurmdbd"] container_name: slurmdbd hostname: slurmdbd volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - var_log_slurm:/var/log/slurm expose: - "6819" depends_on: - mysql slurmctld: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} command: ["slurmctld"] container_name: slurmctld hostname: slurmctld volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - slurm_jobdir:/data - var_log_slurm:/var/log/slurm expose: - "6817" depends_on: - "slurmdbd" c1: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} command: ["slurmd"] hostname: c1 container_name: c1 volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - slurm_jobdir:/data - var_log_slurm:/var/log/slurm expose: - "6818" depends_on: - "slurmctld" c2: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} command: ["slurmd"] hostname: c2 container_name: c2 volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - slurm_jobdir:/data - var_log_slurm:/var/log/slurm expose: - "6818" depends_on: - "slurmctld" volumes: etc_munge: etc_slurm: slurm_jobdir: var_lib_mysql: var_log_slurm: Loading
slurm-docker-cluster/Dockerfile 0 → 100644 +116 −0 Original line number Diff line number Diff line FROM rockylinux:9.2 LABEL org.opencontainers.image.source="https://github.com/giovtorres/slurm-docker-cluster" \ org.opencontainers.image.title="slurm-docker-cluster" \ org.opencontainers.image.description="Slurm Docker cluster on Rocky Linux 8" \ org.label-schema.docker.cmd="docker-compose up -d" \ maintainer="Giovanni Torres" ARG SLURM_TAG=slurm-21-08-6-1 ARG GOSU_VERSION=1.11 ARG SHARED_USER_NAME=user ARG SHARED_USER_UID=1000 ARG SHARED_GROUP_NAME=user ARG SHARED_GROUP_GID=1000 RUN set -ex \ && yum makecache \ && yum -y update \ && yum -y install dnf-plugins-core \ && yum config-manager --set-enabled crb \ && yum -y install \ wget \ bzip2 \ perl \ gcc \ gcc-c++\ gdb \ git \ gnupg \ make \ munge \ munge-devel \ python3-devel \ python3-pip \ python3 \ mariadb-server \ mariadb-devel \ psmisc \ bash-completion \ vim-enhanced \ http-parser-devel \ json-c-devel \ libibverbs-devel \ procps \ openssh-server \ pmix-devel \ && yum clean all \ && rm -rf /var/cache/yum RUN pip3 install Cython nose RUN set -ex \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc" \ && export GNUPGHOME="$(mktemp -d)" \ && gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ && rm -rf "${GNUPGHOME}" /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true RUN set -x \ && git clone -b ${SLURM_TAG} --single-branch --depth=1 https://github.com/SchedMD/slurm.git \ && pushd slurm \ && ./configure \ --enable-debug \ --prefix=/usr \ --sysconfdir=/etc/slurm \ --with-mysql_config=/usr/bin \ --libdir=/usr/lib64 \ --with-pmix \ && make install \ && install -D -m644 etc/cgroup.conf.example /etc/slurm/cgroup.conf.example \ && install -D -m644 etc/slurm.conf.example /etc/slurm/slurm.conf.example \ && install -D -m644 etc/slurmdbd.conf.example /etc/slurm/slurmdbd.conf.example \ && install -D -m644 contribs/slurm_completion_help/slurm_completion.sh /etc/profile.d/slurm_completion.sh \ && popd \ && rm -rf slurm \ && groupadd -r --gid=990 slurm \ && useradd -r -g slurm --uid=990 slurm \ && mkdir /etc/sysconfig/slurm \ /var/spool/slurmd \ /var/run/slurmd \ /var/run/slurmdbd \ /var/lib/slurmd \ /var/log/slurm \ /data \ && touch /var/lib/slurmd/node_state \ /var/lib/slurmd/front_end_state \ /var/lib/slurmd/job_state \ /var/lib/slurmd/resv_state \ /var/lib/slurmd/trigger_state \ /var/lib/slurmd/assoc_mgr_state \ /var/lib/slurmd/assoc_usage \ /var/lib/slurmd/qos_usage \ /var/lib/slurmd/fed_mgr_state \ && chown -R slurm:slurm /var/*/slurm* \ && /sbin/create-munge-key COPY slurm.conf /etc/slurm/slurm.conf COPY slurmdbd.conf /etc/slurm/slurmdbd.conf RUN set -x \ && chown slurm:slurm /etc/slurm/slurmdbd.conf \ && chmod 600 /etc/slurm/slurmdbd.conf RUN set -x \ && ssh-keygen -A RUN set -x \ && groupadd --gid=${SHARED_GROUP_GID} ${SHARED_GROUP_NAME} \ && useradd -g ${SHARED_GROUP_NAME} --uid=${SHARED_USER_UID} ${SHARED_USER_NAME} COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["slurmdbd"]
slurm-docker-cluster/docker-compose.yml 0 → 100644 +84 −0 Original line number Diff line number Diff line version: "2.2" services: mysql: image: mariadb:10.10 hostname: mysql container_name: mysql environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: slurm_acct_db MYSQL_USER: slurm MYSQL_PASSWORD: password volumes: - var_lib_mysql:/var/lib/mysql slurmdbd: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} build: context: . args: SLURM_TAG: ${SLURM_TAG:-slurm-21-08-6-1} command: ["slurmdbd"] container_name: slurmdbd hostname: slurmdbd volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - var_log_slurm:/var/log/slurm expose: - "6819" depends_on: - mysql slurmctld: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} command: ["slurmctld"] container_name: slurmctld hostname: slurmctld volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - slurm_jobdir:/data - var_log_slurm:/var/log/slurm expose: - "6817" depends_on: - "slurmdbd" c1: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} command: ["slurmd"] hostname: c1 container_name: c1 volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - slurm_jobdir:/data - var_log_slurm:/var/log/slurm expose: - "6818" depends_on: - "slurmctld" c2: image: slurm-docker-cluster:${IMAGE_TAG:-21.08} command: ["slurmd"] hostname: c2 container_name: c2 volumes: - etc_munge:/etc/munge - etc_slurm:/etc/slurm - slurm_jobdir:/data - var_log_slurm:/var/log/slurm expose: - "6818" depends_on: - "slurmctld" volumes: etc_munge: etc_slurm: slurm_jobdir: var_lib_mysql: var_log_slurm: