diff --git a/.github/workflows/publish_no_rocm_image_ubuntu24_04.yml b/.github/workflows/publish_no_rocm_image_ubuntu24_04.yml index dd127135efb..eaecce9bdb6 100644 --- a/.github/workflows/publish_no_rocm_image_ubuntu24_04.yml +++ b/.github/workflows/publish_no_rocm_image_ubuntu24_04.yml @@ -47,3 +47,12 @@ jobs: with: DOCKER_FILE_NAME: no_rocm_image_ubuntu24_04_media DOCKER_IMAGE_NAME: no_rocm_image_ubuntu24_04_media + # The image no_rocm_image_ubuntu24_04_openmpi is an extension of + # no_rocm_image_ubuntu24_04, so make sure we rebuild the _openmpi + # version whenever the base version changes. + publish_no_rocm_image_ubuntu24_04_openmpi: + needs: [publish_no_rocm_image_ubuntu24_04] + uses: ./.github/workflows/publish_dockerfile.yml + with: + DOCKER_FILE_NAME: no_rocm_image_ubuntu24_04_openmpi + DOCKER_IMAGE_NAME: no_rocm_image_ubuntu24_04_openmpi diff --git a/dockerfiles/README.md b/dockerfiles/README.md index d1237487f69..9d55665676a 100644 --- a/dockerfiles/README.md +++ b/dockerfiles/README.md @@ -100,6 +100,19 @@ This includes dejagnu, make, gcc, g++ and gfortran. Used in ocltst execution. It installs OCL ICD package required by ocltst +| Source .Dockerfile | Published package | +| ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| [`no_rocm_image_ubuntu24_04_openmpi.Dockerfile`](no_rocm_image_ubuntu24_04_openmpi.Dockerfile) | https://github.com/ROCm/TheRock/pkgs/container/no_rocm_image_ubuntu24_04_openmpi | + +Extended version of no_rocm_image_ubuntu24_04.Dockerfile, containing a system +OpenMPI install (`libopenmpi-dev`, `openmpi-bin`) for the rocprofv3 `mpi-ranks` +integration tests. Like the other `no_rocm_image_*` images this is a test-only +image (not a ROCm build image): the rocprofiler-sdk tests are configured and +compiled in-container at test time, so `find_package(MPI)` needs the OpenMPI +headers and `mpiexec`. OpenMPI is intentionally not bundled in TheRock artifacts +(to avoid forcing a specific MPI onto users), so it is provided at the system +level here for the test environment. + ### `rocm_runtime.Dockerfile` | Source .Dockerfile | Published package | diff --git a/dockerfiles/no_rocm_image_ubuntu24_04_openmpi.Dockerfile b/dockerfiles/no_rocm_image_ubuntu24_04_openmpi.Dockerfile new file mode 100644 index 00000000000..3cdf3f25639 --- /dev/null +++ b/dockerfiles/no_rocm_image_ubuntu24_04_openmpi.Dockerfile @@ -0,0 +1,14 @@ +FROM ghcr.io/rocm/no_rocm_image_ubuntu24_04:latest + +# no_rocm_image_ubuntu24_04_openmpi: +# Test-only image (not a ROCm build image): extends no_rocm_image_ubuntu24_04 with +# a system OpenMPI install (libopenmpi-dev, openmpi-bin) for the rocprofv3 mpi-ranks +# integration tests. The rocprofiler-sdk tests are configured and compiled +# in-container at test time, so find_package(MPI) needs the OpenMPI headers and +# mpiexec. OpenMPI is intentionally not bundled in TheRock artifacts (to avoid +# forcing a specific MPI onto users), so it is provided at the system level here. +# The corresponding published image is: +# ghcr.io/rocm/no_rocm_image_ubuntu24_04_openmpi:latest +RUN sudo apt-get install -y --no-install-recommends \ + libopenmpi-dev \ + openmpi-bin