Skip to content

Commit e5dd709

Browse files
committed
Allow custom repo URLs to used in rocky-container element
1 parent 41f07c5 commit e5dd709

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

elements/rocky-container-stackhpc/README.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,26 @@
22
rocky-container-stackhpc
33
========================
44
Custom containerfiles for usage with ``rocky-container`` builds.
5+
56
Usage:
67
Set ``DIB_CONTAINERFILE_DOCKERFILE`` environment variable to custom
78
Containerfile path provided by this role, e.g.:
89
DIB_CONTAINERFILE_DOCKERFILE: "/opt/kayobe/src/stackhpc-image-elements/elements/rocky-container-stackhpc/containerfiles/9-stackhpc"
10+
11+
Pass ``ROCKY_USE_CUSTOM_DNF_MIRRORS=true`` as a build-arg to disable
12+
upstream Rocky repository mirrors.
13+
14+
``ROCKY_CUSTOM_DNF_MIRROR_URLS`` is a comma-delimited list of repository URLs
15+
to build an image from, and should also be passed as a build-arg.
16+
``ROCKY_CUSTOM_DNF_MIRROR_URLS`` will be removed from the final image.
17+
18+
Use ``DIB_CONTAINERFILE_BUILDOPTS`` to pass through build args to the container
19+
engine:
20+
21+
.. code-block:: yaml
22+
DIB_CONTAINERFILE_BUILDOPTS: >-
23+
--build-arg=ROCKY_USE_CUSTOM_DNF_MIRRORS=true
24+
--build-arg=ROCKY_CUSTOM_DNF_MIRROR_URLS=http://localhost/rocky/9/AppStream/x86_64/os/,http://localhost/rocky/9/BaseOS/x86_64/os/
25+
26+
Set ``DIB_ROCKY_CONTAINER_STACKHPC_RESTORE_UPSTREAM_REPOFILES=true`` to restore the
27+
upstream Rocky repository mirror configuration in the final image.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
3+
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
4+
set -x
5+
fi
6+
set -eu
7+
set -o pipefail
8+
9+
DIB_ROCKY_CONTAINER_STACKHPC_RESTORE_UPSTREAM_REPOFILES=${DIB_ROCKY_CONTAINER_STACKHPC_RESTORE_UPSTREAM_REPOFILES:-"false"}
10+
11+
[ -n "$TARGET_ROOT" ]
12+
13+
# Remove custom repo files
14+
if [ -d /tmp/orig_repos ]; then
15+
sudo rm -f ${TARGET_ROOT}/etc/yum.repos.d/*.repo
16+
fi
17+
18+
# Conditionally restore upstream repo files
19+
if [[ ${DIB_ROCKY_CONTAINER_STACKHPC_RESTORE_UPSTREAM_REPOFILES} != "false" ]]; then
20+
sudo cp -f ${TARGET_ROOT}/tmp/orig_repos/*.repo ${TARGET_ROOT}/etc/yum.repos.d/
21+
fi
22+
23+
# Cleanup temporary copies of original repo files
24+
sudo rm -rf ${TARGET_ROOT}/tmp/orig_repos

elements/rocky-container-stackhpc/containerfiles/9-stackhpc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
# Based on https://github.com/openstack/diskimage-builder/blob/master/diskimage_builder/elements/rocky-container/containerfiles/9
22

33
FROM docker.io/rockylinux/rockylinux:9
4+
ARG ROCKY_USE_CUSTOM_DNF_MIRRORS="false"
5+
# Comma-delimited list of repo URLs
6+
ARG ROCKY_CUSTOM_DNF_MIRROR_URLS
7+
8+
RUN if [[ ${ROCKY_USE_CUSTOM_DNF_MIRRORS} != "false" ]]; then \
9+
dnf -y install 'dnf-command(config-manager)' && \
10+
mkdir /tmp/orig_repos && mv /etc/yum.repos.d/*.repo /tmp/orig_repos/ && \
11+
for REPO_URL in $(echo ${ROCKY_CUSTOM_DNF_MIRROR_URLS} | sed 's/,/ /g'); do \
12+
dnf config-manager --add-repo ${REPO_URL}; \
13+
done && \
14+
dnf --allowerasing -y distro-sync; \
15+
fi
416

517
RUN dnf group install -y 'Minimal Install' --allowerasing && \
618
dnf install -y findutils util-linux cloud-init

0 commit comments

Comments
 (0)