diff --git a/15.4/Dockerfile b/15.4/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..d24690d5125c067e8f010f522771b3b4556b93e8
--- /dev/null
+++ b/15.4/Dockerfile
@@ -0,0 +1,34 @@
+FROM opensuse/leap:15.4
+
+RUN zypper refresh -f \
+ && zypper update -y \
+ && zypper clean
+
+RUN zypper --non-interactive install --no-recommends \
+  sudo wget curl which tar expect git \
+  make patch rpm-build rpmlint \
+ && zypper clean
+
+RUN zypper --non-interactive install --no-recommends \
+  cmake libopenssl-devel ccache \
+ && zypper clean
+
+RUN zypper --non-interactive addrepo https://download.opensuse.org/repositories/home:/icinga/15.4/home:icinga.repo \
+ && zypper --gpg-auto-import-keys --non-interactive install spectool createrepo_c \
+ && zypper clean -a
+
+RUN rpm --import https://packages.icinga.com/icinga.key \
+ && zypper --non-interactive addrepo --refresh https://packages.icinga.com/openSUSE/ICINGA-release.repo \
+ && zypper --non-interactive refresh \
+ && zypper clean -a
+
+RUN groupadd -g 1000 build \
+ && useradd -u 1000 -g 1000 -m build \
+ && echo 'Defaults:build !requiretty' | tee -a /etc/sudoers \
+ && echo 'build ALL=(ALL:ALL) NOPASSWD: ALL' | tee -a /etc/sudoers
+
+RUN git clone https://git.icinga.com/build-docker/scripts.git /usr/local/bin
+RUN icinga-provide-go
+USER build
+ENTRYPOINT ["/usr/local/bin/icinga-build-entrypoint"]
+CMD ["icinga-build-package"]
diff --git a/15.4/Makefile b/15.4/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f451fe153997996b75db9be5b1b9b967fad97fc4
--- /dev/null
+++ b/15.4/Makefile
@@ -0,0 +1,2 @@
+VARIANT := x86_64
+include ../image.mk