diff --git a/elements/yum/README.md b/elements/yum/README.md index b38a94fe..2425a7f2 100644 --- a/elements/yum/README.md +++ b/elements/yum/README.md @@ -8,3 +8,8 @@ chroot so that they can be reused by subsequent image builds. The cache increases image building speed when building multiple images, especially on slow connections. This is more effective than using an HTTP proxy as a yum cache since the same rpm from different mirrors is often requested. + +A custom yum repository configuration can also be applied by defining +`DIB_YUM_REPO_CONF` to the path to a repo configuration file. The file will +be copied to /etc/yum.repos.d/dib-yum-repo-conf.repo during the image build, +and then removed at the end of the build. diff --git a/elements/yum/cleanup.d/99-remove-yum-repo-conf b/elements/yum/cleanup.d/99-remove-yum-repo-conf new file mode 100755 index 00000000..887aa4f6 --- /dev/null +++ b/elements/yum/cleanup.d/99-remove-yum-repo-conf @@ -0,0 +1,6 @@ +#!/bin/bash + +set -eux +set -o pipefail + +sudo rm -f $TMP_MOUNT_PATH/etc/yum.repos.d/dib-yum-repo-conf.repo diff --git a/elements/yum/extra-data.d/99-yum-repo-conf b/elements/yum/extra-data.d/99-yum-repo-conf new file mode 100755 index 00000000..f0dde92b --- /dev/null +++ b/elements/yum/extra-data.d/99-yum-repo-conf @@ -0,0 +1,18 @@ +#!/bin/bash +# Add an additional yum repo configuration with $DIB_YUM_REPO_CONF + +set -eux +set -o pipefail + +# exit directly if DIB_YUM_REPO_CONF is not defined properly +if [ -z "${DIB_YUM_REPO_CONF:-}" ] ; then + echo "DIB_YUM_REPO_CONF is not set - no repo configuration will be copied in" + exit 0 +elif [ ! -f "$DIB_YUM_REPO_CONF" ] ; then + echo "DIB_YUM_REPO_CONF is not a valid yum repo configuration file." + echo "You should assign a proper yum repo configuration file in DIB_YUM_REPO_CONF" + exit 1 +fi + +# copy the yum repo configuration +sudo cp -L -f $DIB_YUM_REPO_CONF $TMP_MOUNT_PATH/etc/yum.repos.d/dib-yum-repo-conf.repo