From 5dd9cf08346ec9e6206b4a9c2e8c9ea090f730a4 Mon Sep 17 00:00:00 2001 From: Vasileios Karakasis Date: Wed, 29 Apr 2026 00:56:48 +0200 Subject: [PATCH] Update ReFrame tutorial containers Signed-off-by: Vasileios Karakasis --- docs/started.rst | 5 --- docs/tutorial.rst | 2 +- .../dockerfiles/singlenode.Dockerfile | 31 +++++++------------ .../slurm-cluster/docker-compose.yml | 6 ++-- .../slurm-cluster/reframe/Dockerfile | 18 +++++------ 5 files changed, 22 insertions(+), 40 deletions(-) diff --git a/docs/started.rst b/docs/started.rst index 018387e943..ca4a2cd581 100644 --- a/docs/started.rst +++ b/docs/started.rst @@ -6,11 +6,6 @@ Requirements ------------ * Python 3.10 or higher. -* The required Python packages are the following: - -.. literalinclude:: ../requirements.txt - :end-before: #+ - .. note:: .. versionchanged:: 3.0 diff --git a/docs/tutorial.rst b/docs/tutorial.rst index 60c57dea8a..fb237342f2 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -53,7 +53,7 @@ Once the Docker compose stack is up, you execute the following from a different .. code-block:: - docker exec -it $(docker ps -f name=frontend -q) /bin/bash + docker exec -it $(docker ps -f name=frontend -q) /bin/bash -l # Inside the container cd reframe-examples/tutorial/ diff --git a/examples/tutorial/dockerfiles/singlenode.Dockerfile b/examples/tutorial/dockerfiles/singlenode.Dockerfile index 2c8fed9c78..a2a010bd73 100644 --- a/examples/tutorial/dockerfiles/singlenode.Dockerfile +++ b/examples/tutorial/dockerfiles/singlenode.Dockerfile @@ -1,40 +1,31 @@ -FROM ubuntu:22.04 +FROM ubuntu:24.04 +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/ RUN apt-get -y update && \ apt-get -y install curl && \ apt-get -y install sudo && \ - apt-get -y install python3-pip && \ apt-get -y install clang gcc git jq libomp-dev tree vim -# Install reframe -ARG REFRAME_TAG=develop -ARG REFRAME_REPO=reframe-hpc -WORKDIR /usr/local/share - -# Clone reframe -# RUN git clone --depth 1 --branch $REFRAME_TAG https://github.com/$REFRAME_REPO/reframe.git && \ -# cd reframe/ && ./bootstrap.sh - -# Comment the above line and uncomment the following two for development - -COPY . /usr/local/share/reframe -RUN cd reframe && ./bootstrap.sh - -ENV PATH=/usr/local/share/reframe/bin:$PATH - # Install stream +WORKDIR /usr/local/share RUN mkdir -p stream/bin && \ cd stream && \ curl -fsSLJO https://www.cs.virginia.edu/stream/FTP/Code/stream.c && \ gcc -DSTREAM_ARRAY_SIZE=100000000 -O3 -Wall -fopenmp -o bin/stream.x stream.c ENV PATH=/usr/local/share/stream/bin:$PATH +# Prepare reframe installation +WORKDIR /workspace +COPY . /workspace/reframe + # Add tutorial user RUN useradd -ms /bin/bash -G sudo user && \ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers -# COPY examples /home/user/reframe-examples -# RUN chown -R user:user /home/user/reframe-examples WORKDIR /home/user +# Install reframe USER user +RUN uv tool install /workspace/reframe +ENV PATH=/home/user/.local/bin:$PATH +ENV MANPATH=/home/user/.local/share/uv/tools/reframe-hpc/share/man \ No newline at end of file diff --git a/examples/tutorial/dockerfiles/slurm-cluster/docker-compose.yml b/examples/tutorial/dockerfiles/slurm-cluster/docker-compose.yml index be8427fd79..e33264fe1a 100644 --- a/examples/tutorial/dockerfiles/slurm-cluster/docker-compose.yml +++ b/examples/tutorial/dockerfiles/slurm-cluster/docker-compose.yml @@ -72,10 +72,8 @@ services: frontend: image: slurm-reframe build: - context: examples/tutorial/dockerfiles/slurm-cluster/reframe - args: - REFRAME_REPO: reframe-hpc - REFRAME_TAG: develop + context: . + dockerfile: examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile container_name: frontend hostname: login user: admin diff --git a/examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile b/examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile index 944471b38e..fd0fa4fdd8 100644 --- a/examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile +++ b/examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile @@ -29,23 +29,21 @@ RUN useradd -m admin -s /usr/bin/bash -d /home/admin && \ echo "admin:admin" | chpasswd && adduser admin sudo && \ echo "admin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -COPY docker-entrypoint.sh /usr/local/bin/ +COPY examples/tutorial/dockerfiles/slurm-cluster/reframe/docker-entrypoint.sh /usr/local/bin/ RUN mkdir /scratch && \ chown -R admin:admin /scratch RUN chmod +x /usr/local/bin/docker-entrypoint.sh -# Install reframe -ARG REFRAME_TAG=develop -ARG REFRAME_REPO=reframe-hpc -WORKDIR /usr/local/share -RUN git clone --depth 1 --branch $REFRAME_TAG https://github.com/$REFRAME_REPO/reframe.git && \ - cd reframe/ && uv tool install . +# Prepare reframe installation +WORKDIR /workspace +COPY . /workspace/reframe WORKDIR /home/admin - -ENV USER admin -ENV SHELL bash +USER admin +RUN uv tool install /workspace/reframe && \ + echo "export PATH=/home/admin/.local/bin:\$PATH" >> /home/admin/.profile && \ + echo "export MANPATH=/home/admin/.local/share/uv/tools/reframe-hpc/share/man:" >> /home/admin/.profile ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]