Skip to content

Alma9 Updates, master branch (2023.10.19.)

As a follow-up to !68 (merged), pruned the alma9-atlasos image a bit.

The setup previously was indeed absolutely unacceptably slow. It took me ~20 minutes to build the base image. 😦 With this update this is now:

[bash][atspot01]:docker > docker build -t gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:1.0.0-gcc13 -t gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:1.0.0 -t gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:latest-gcc13 -t gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:latest --build-arg GCCPACKAGES="gcc_13.1.0_x86_64_el9 binutils_2.40_x86_64_el9" --build-arg GCCVERSION=13.1.0 --compress --squash ./docker/alma9-atlasos/
WARNING: experimental flag squash is removed with BuildKit. You should squash inside build using a multi-stage Dockerfile for efficiency.
[+] Building 71.3s (14/14) FINISHED                                                       docker:default
 => [internal] load .dockerignore                                                                   0.0s
 => => transferring context: 2B                                                                     0.0s
 => [internal] load build definition from Dockerfile                                                0.0s
 => => transferring dockerfile: 2.24kB                                                              0.0s
 => [internal] load metadata for docker.io/cern/alma9-base:latest                                   1.1s
 => [auth] cern/alma9-base:pull token for registry-1.docker.io                                      0.0s
 => [1/8] FROM docker.io/cern/alma9-base:latest@sha256:ba1abac0ee0be222e46b986d8381a60fe688ddf8e63  0.0s
 => [internal] load build context                                                                   0.0s
 => => transferring context: 658B                                                                   0.0s
 => CACHED [2/8] WORKDIR /root                                                                      0.0s
 => [3/8] COPY *.repo /etc/yum.repos.d/                                                             0.0s
 => [4/8] RUN dnf -y update  && dnf -y install       --disablerepo=tdaq* --disablerepo=atlas* --d  65.9s
 => [5/8] COPY atlas_prompt.sh cmake-3.27.5.sh /etc/profile.d/                                      0.0s
 => [6/8] RUN echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers  && adduser atlas && chmod 777  0.6s 
 => [7/8] RUN mkdir -p /alrb /cvmfs /afs /eos                                                       0.4s 
 => [8/8] COPY motd /etc/                                                                           0.0s 
 => exporting to image                                                                              3.1s 
 => => exporting layers                                                                             3.0s 
 => => writing image sha256:06be397d029a1367eb2157797a50cd1217df094f05ddcfbc9467d3de9b299f91        0.0s
 => => naming to gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:1.0.0-gcc13                 0.0s
 => => naming to gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:1.0.0                       0.0s
 => => naming to gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:latest-gcc13                0.0s
 => => naming to gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:latest                      0.0s
[bash][atspot01]:docker >

I.e. it's just over 1 minute. 😉

In the previous setup the main reason for the image being huge was:

[bash][root]:~ > cd /opt
[bash][root]:opt > ls -l
total 0
drwxr-xr-x 3 root root 20 Oct 19 13:49 cmake
drwxr-xr-x 6 root root 61 Oct 19 13:43 lcg
[bash][root]:opt > du -sh *
162M    cmake
2.1G    lcg
[bash][root]:opt > cd lcg/
[bash][root]:lcg > ls
binutils  clang  gcc  gettext
[bash][root]:lcg > ls -l
total 0
drwxr-xr-x 4 root root 36 Oct 19 13:43 binutils
drwxr-xr-x 4 root root 40 Oct 19 13:43 clang
drwxr-xr-x 4 root root 58 Oct 19 13:49 gcc
drwxr-xr-x 3 root root 26 Oct 19 13:43 gettext
[bash][root]:lcg > du -sh *
48M     binutils
1.6G    clang
441M    gcc
33M     gettext
[bash][root]:lcg > cd clang/
[bash][root]:clang > ls
16.0.3  16.0.3-9dda8
[bash][root]:clang >

Somehow Clang 16 ended up being installed. 😕 But now that I disabled all non-essential repositories for the RPM installation, Clang is gone. We will need to keep an eye on this however. 🤔

Note that I completely turned off the http://cern.ch/lcgpackages/rpms and http://cern.ch/lcgpackages/rpms_updates repositories. I think they don't contain any packages for EL9. But I'm not sure, so I kept them in place, just in a disabled way. (So that downstream images could still enable them with dnf config-managed --set-enabled lcg lcg-updates.

Pinging @tadej. 😉

Merge request reports