-
Notifications
You must be signed in to change notification settings - Fork 99
Description
It appears that base images rockylinux:[8|9]-minimal
do not contain yum
or dnf
executable (only the rpm
one). Which brings havoc when using building blocks that depend on having yum
(e.g. the mkl()
one).
Clearly not including yum
/dnf
was an intentional choice Rocky made for the -minimal
container. In itself, this is is not a big problem in HPCCM context (there's always a slightly larger yum
-containing regular rockylinux:[8|9]
base image instead). But this could bite someone trying to do a multistage build using -minimal
for the runtime stage (similar to the multistage example with Nvidia's -devel
and -base
). Perhaps HPCCM could add internal logic to install yum if yum is not in the image?
The two-stage MKL recipe that crashed on the second stage and led me to discovery:
Stage0 += baseimage(image='rockylinux:9', _as='devel')
Stage0 += mkl(eula=True, version='2020.0-088')
Stage1 += baseimage(image='rockylinux:9-minimal')
Stage1 += Stage0.runtime(_from='devel')
Or the smallest reproducible example.py
with a single stage:
Stage0 += baseimage(image='rockylinux:9-minimal')
Stage0 += mkl(eula=True, version='2020.0-088')
Generated Singularity definition file:
$ hpccm --version
25.3.0
$ hpccm --recipe example.py --format singularity --singularity-version 3.8
BootStrap: docker
From: rockylinux:9-minimal
%post
. /.singularity.d/env/10-docker*.sh
# MKL version 2020.0-088
%post
rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
yum install -y dnf-utils
^^^^^^^^^^^^^^^^^^^^^^^^^^
[...]
Which then bombs out when building the container:
$ singularity build example.sif example.def
[,,,.]
INFO: Running post scriptlet
+ . /.singularity.d/env/10-docker2singularity.sh
++ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
+ yum install -y dnf-utils
/.post.script: line 5: yum: command not found
FATAL: While performing build: while running engine: while running %post section: exit status 127