diff --git a/diskimage_builder/elements/zypper-minimal/README.rst b/diskimage_builder/elements/zypper-minimal/README.rst
index eb4335225..914aa5d51 100644
--- a/diskimage_builder/elements/zypper-minimal/README.rst
+++ b/diskimage_builder/elements/zypper-minimal/README.rst
@@ -6,3 +6,10 @@ Base element for creating minimal SUSE-based images
 This element is incomplete by itself so you probably want to use it along
 with the opensuse-minimal one. It requires 'zypper' to be installed on the
 host.
+
+To create a zypper-based image with non-default repositories, set
+``DIB_ZYPPER_REPOS`` to a mapping of repository names to URLs, for example::
+
+  DIB_ZYPPER_REPOS="update=>http://smt-mirror.example.com/SUSE:/SLE-15-SP1:/Update/standard/ "
+  DIB_ZYPPER_REPOS+="SLE-15-SP1=>http://smt-mirror.example.com/ibs/SUSE:/SLE-15-SP1:/GA/standard/ "
+  DIB_ZYPPER_REPOS+="SLE-15=>http://smt-mirror.example.com/ibs/SUSE:/SLE-15:/GA/standard/ "
diff --git a/diskimage_builder/elements/zypper-minimal/root.d/08-zypper-chroot b/diskimage_builder/elements/zypper-minimal/root.d/08-zypper-chroot
index b77802ad6..c5fc48fc5 100755
--- a/diskimage_builder/elements/zypper-minimal/root.d/08-zypper-chroot
+++ b/diskimage_builder/elements/zypper-minimal/root.d/08-zypper-chroot
@@ -41,25 +41,29 @@ ZYPPER_INSTALL_SYSTEM_PYTHON="python3"
 
 DIB_DISTRIBUTION_MIRROR=${DIB_DISTRIBUTION_MIRROR:-https://download.opensuse.org}
 
-case ${DIB_RELEASE} in
-    # Old Leap releases
-    42*)
-        ZYPPER_REPOS="update=>${DIB_DISTRIBUTION_MIRROR}/update/leap/${DIB_RELEASE}/oss/ "
-        ZYPPER_REPOS+="oss=>${DIB_DISTRIBUTION_MIRROR}/distribution/leap/${DIB_RELEASE}/repo/oss/"
-        ZYPPER_INSTALL_SYSTEM_PYTHON="python"
-        ;;
-    # New Leap releases
-    15*)
-        ZYPPER_REPOS="update=>${DIB_DISTRIBUTION_MIRROR}/update/leap/${DIB_RELEASE}/oss/ "
-        ZYPPER_REPOS+="oss=>${DIB_DISTRIBUTION_MIRROR}/distribution/leap/${DIB_RELEASE}/repo/oss/"
-        ;;
-    # Tumbleweed
-    tumbleweed)
-        ZYPPER_REPOS="update=>${DIB_DISTRIBUTION_MIRROR}/update/${DIB_RELEASE}/ "
-        ZYPPER_REPOS+="oss=>${DIB_DISTRIBUTION_MIRROR}/${DIB_RELEASE}/repo/oss/"
-        ;;
-    *) echo "Unsupported openSUSE release: ${DIB_RELEASE}"; exit 1 ;;
-esac
+ZYPPER_REPOS=${DIB_ZYPPER_REPOS:-''}
+
+if [ -z "${ZYPPER_REPOS}" ] ; then
+    case ${DIB_RELEASE} in
+        # Old Leap releases
+        42*)
+            ZYPPER_REPOS="update=>${DIB_DISTRIBUTION_MIRROR}/update/leap/${DIB_RELEASE}/oss/ "
+            ZYPPER_REPOS+="oss=>${DIB_DISTRIBUTION_MIRROR}/distribution/leap/${DIB_RELEASE}/repo/oss/"
+            ZYPPER_INSTALL_SYSTEM_PYTHON="python"
+            ;;
+        # New Leap releases
+        15*)
+            ZYPPER_REPOS="update=>${DIB_DISTRIBUTION_MIRROR}/update/leap/${DIB_RELEASE}/oss/ "
+            ZYPPER_REPOS+="oss=>${DIB_DISTRIBUTION_MIRROR}/distribution/leap/${DIB_RELEASE}/repo/oss/"
+            ;;
+        # Tumbleweed
+        tumbleweed)
+            ZYPPER_REPOS="update=>${DIB_DISTRIBUTION_MIRROR}/update/${DIB_RELEASE}/ "
+            ZYPPER_REPOS+="oss=>${DIB_DISTRIBUTION_MIRROR}/${DIB_RELEASE}/repo/oss/"
+            ;;
+        *) echo "Unsupported openSUSE release: ${DIB_RELEASE}"; exit 1 ;;
+    esac
+fi
 
 for repo in ${ZYPPER_REPOS}; do
     refresh_repo=""