From 5966ae7d77f7491d6bc3283b29e10fe79b024a13 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Tue, 8 Apr 2025 09:36:57 +0200 Subject: [PATCH] Fix issues on Macos Apple Silicon systems --- README.md | 12 ++++++++---- scripts/checkModules.sh | 9 --------- setupDev.sh | 28 ++++++++++++++++++++++++---- slurm/base/Dockerfile | 28 ++++++++++++++-------------- 4 files changed, 46 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index b57a742..5d8ba1e 100755 --- a/README.md +++ b/README.md @@ -61,8 +61,13 @@ If you are using different linux flavors, you will have to adapt size of 338MB (mostly for the cc-metric-store data). 3. The setup-script launches the supporting container stack in the background - automatically if everything went well. Run `$> ./cc-backend/cc-backend --server -dev` to start `cc-backend`. + automatically if everything went well. Run + +``` bash +./cc-backend/cc-backend -server -dev +``` + +to start `cc-backend`. 4. By default, you can access `cc-backend` in your browser at `http://localhost:8080`. You can shut down the cc-backend server by pressing @@ -153,7 +158,7 @@ cluster i.e. node01. In order to execute slurm commands, you may need to **`bash`** into the **`slurmctld`** docker service. -``` +``` bash docker exec -it slurmctld bash ``` @@ -228,4 +233,3 @@ Roughly 2700 jobs from the first week of 2021 are loaded with data from InfluxDB Some views of ClusterCockpit (e.g. the Users view) show the last week or month. To show some data there you have to set the filter to time periods with jobs (August 2020 to January 2021). - diff --git a/scripts/checkModules.sh b/scripts/checkModules.sh index 6fdd04d..8e4a8d3 100755 --- a/scripts/checkModules.sh +++ b/scripts/checkModules.sh @@ -29,15 +29,6 @@ else echo "Docker installed." fi -# check if docker-compose is installed and available -if ! docker-compose --version; then - echo "Docker-compose not installed!" - echo -n "Stopped." - exit -else - echo "Docker-compose installed." -fi - # check if npm is installed and available if ! npm --version; then echo "NPM not installed!" diff --git a/setupDev.sh b/setupDev.sh index 7c61558..bacbc66 100755 --- a/setupDev.sh +++ b/setupDev.sh @@ -27,6 +27,26 @@ fi chmod u+x scripts/checkModules.sh ./scripts/checkModules.sh +# check if docker-compose is installed and available +if ! docker-compose --version; then + echo "Docker-compose not installed!" +else + echo "docker-compose available." + export DOCKER_COMPOSE="docker-compose" +fi + +if ! docker compose version; then + echo "Docker-compose not installed!" +else + echo "docker compose available." + export DOCKER_COMPOSE="docker compose" +fi + +if [[ -z "${DOCKER_COMPOSE}" ]]; then + echo -n "Stopped." + exit +fi + # Creates data directory if it does not exists. # Contains all the mount points required by all the docker services # and their static files. @@ -54,8 +74,8 @@ if [ -d data/cc-metric-store-source ]; then fi # Just in case user forgot manually shutdown the docker services. -docker-compose down -docker-compose down --remove-orphans +$DOCKER_COMPOSE down +$DOCKER_COMPOSE down --remove-orphans # This automatically builds the base docker image for slurm. # All the slurm docker service in docker-compose.yml refer to @@ -65,8 +85,8 @@ make cd ../.. # Starts all the docker services from docker-compose.yml. -docker-compose build -docker-compose up -d +$DOCKER_COMPOSE build +$DOCKER_COMPOSE up -d cd cc-backend if [ ! -d var ]; then diff --git a/slurm/base/Dockerfile b/slurm/base/Dockerfile index ca6b27f..be8aa37 100644 --- a/slurm/base/Dockerfile +++ b/slurm/base/Dockerfile @@ -5,7 +5,7 @@ ENV SLURM_VERSION=24.05.3 ENV HTTP_PARSER_VERSION=2.8.0 RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -RUN ARCH=$(uname -m) && yum install -y https://rpmfind.net/linux/almalinux/8.10/PowerTools/x86_64/os/Packages/http-parser-devel-2.8.0-9.el8.$ARCH.rpm +RUN ARCH=$(uname -m) && yum install -y https://rpmfind.net/linux/almalinux/8.10/PowerTools/$ARCH/os/Packages/http-parser-devel-2.8.0-9.el8.$ARCH.rpm RUN groupadd -g 981 munge \ && useradd -m -c "MUNGE Uid 'N' Gid Emporium" -d /var/lib/munge -u 981 -g munge -s /sbin/nologin munge \ @@ -15,25 +15,25 @@ RUN groupadd -g 981 munge \ && useradd -m -c "Workflow user" -d /home/worker -u 982 -g worker -s /bin/bash worker RUN yum install -y munge munge-libs rng-tools \ - python3 gcc openssl openssl-devel \ - openssh-server openssh-clients dbus-devel \ - pam-devel numactl numactl-devel hwloc sudo \ - lua readline-devel ncurses-devel man2html \ - autoconf automake json-c-devel libjwt-devel \ - libibmad libibumad rpm-build perl-ExtUtils-MakeMaker.noarch rpm-build make wget + python3 gcc openssl openssl-devel \ + openssh-server openssh-clients dbus-devel \ + pam-devel numactl numactl-devel hwloc sudo \ + lua readline-devel ncurses-devel man2html \ + autoconf automake json-c-devel libjwt-devel \ + libibmad libibumad rpm-build perl-ExtUtils-MakeMaker.noarch rpm-build make wget RUN dnf --enablerepo=powertools install -y munge-devel rrdtool-devel lua-devel hwloc-devel mariadb-server mariadb-devel RUN mkdir -p /usr/local/slurm-tmp \ - && cd /usr/local/slurm-tmp \ - && wget https://download.schedmd.com/slurm/slurm-${SLURM_VERSION}.tar.bz2 \ - && rpmbuild -ta --with slurmrestd --with jwt slurm-${SLURM_VERSION}.tar.bz2 + && cd /usr/local/slurm-tmp \ + && wget https://download.schedmd.com/slurm/slurm-${SLURM_VERSION}.tar.bz2 \ + && rpmbuild -ta --with slurmrestd --with jwt slurm-${SLURM_VERSION}.tar.bz2 RUN ARCH=$(uname -m) \ - && yum -y --nogpgcheck localinstall \ - /root/rpmbuild/RPMS/$ARCH/slurm-${SLURM_VERSION}*.$ARCH.rpm \ - /root/rpmbuild/RPMS/$ARCH/slurm-perlapi-${SLURM_VERSION}*.$ARCH.rpm \ - /root/rpmbuild/RPMS/$ARCH/slurm-slurmctld-${SLURM_VERSION}*.$ARCH.rpm + && yum -y --nogpgcheck localinstall \ + /root/rpmbuild/RPMS/$ARCH/slurm-${SLURM_VERSION}*.$ARCH.rpm \ + /root/rpmbuild/RPMS/$ARCH/slurm-perlapi-${SLURM_VERSION}*.$ARCH.rpm \ + /root/rpmbuild/RPMS/$ARCH/slurm-slurmctld-${SLURM_VERSION}*.$ARCH.rpm VOLUME ["/home", "/.secret"] # 22: SSH