diff --git a/utils/docker/images/Dockerfile.fedora-25 b/utils/docker/images/Dockerfile.fedora-25
index 41573b17b7ffbba49c7d25fe163bc7185c34310a..71a57cc1183bac7930eb22a076dcf0839df653ec 100644
--- a/utils/docker/images/Dockerfile.fedora-25
+++ b/utils/docker/images/Dockerfile.fedora-25
@@ -43,11 +43,12 @@ RUN dnf install -y git gcc clang openssh-server autoconf automake make \
 	wget tar lbzip2 passwd sudo pkgconfig findutils man libunwind-devel \
 	file rpm-build rpm-build-libs which fuse fuse-devel ncurses-devel \
 	libuv-devel glib2-devel libtool pandoc doxygen cmake gdb asciidoc \
-	kmod-devel xmlto libudev-devel libuuid-devel json-c-devel bc
+	kmod-devel xmlto libudev-devel libuuid-devel json-c-devel bc \
+	rpmdevtools
 
 # Install libndctl
 COPY install-libndctl.sh install-libndctl.sh
-RUN ./install-libndctl.sh
+RUN ./install-libndctl.sh fedora
 
 # Install valgrind
 COPY install-valgrind.sh install-valgrind.sh
@@ -55,7 +56,7 @@ RUN ./install-valgrind.sh
 
 # Install libfabric
 COPY install-libfabric.sh install-libfabric.sh
-RUN ./install-libfabric.sh
+RUN ./install-libfabric.sh fedora
 
 # Install libcxx
 COPY install-libcxx.sh install-libcxx.sh
diff --git a/utils/docker/images/install-libfabric.sh b/utils/docker/images/install-libfabric.sh
index cd8694f6e3fcf7afea99c726023c3267fb1d73bc..39c441a201f237a1ebef74816618069beffb4016 100755
--- a/utils/docker/images/install-libfabric.sh
+++ b/utils/docker/images/install-libfabric.sh
@@ -36,6 +36,8 @@
 
 set -e
 
+OS=$1
+
 # Keep in sync with requirements in src/common.inc.
 libfabric_ver=1.6.0rc2
 libfabric_url=https://github.com/ofiwg/libfabric/archive
diff --git a/utils/docker/images/install-libndctl.sh b/utils/docker/images/install-libndctl.sh
index 857df122e4940d059ac9d58c4572b818407f3b69..84385ec8a54c4768867a34e6bace7676f77f475b 100755
--- a/utils/docker/images/install-libndctl.sh
+++ b/utils/docker/images/install-libndctl.sh
@@ -36,12 +36,57 @@
 
 set -e
 
+OS=$1
+
+echo "==== clone ndctl repo ===="
 git clone https://github.com/pmem/ndctl.git
 cd ndctl
 git checkout tags/v59.2
+
+if [ "$OS" = "fedora" ]; then
+
+echo "==== setup rpmbuild tree ===="
+rpmdev-setuptree
+
+RPMDIR=$HOME/rpmbuild/
+VERSION=$(./git-version)
+SPEC=./rhel/ndctl.spec
+
+echo "==== create source tarball ====="
+git archive --format=tar --prefix="ndctl-${VERSION}/" HEAD | gzip > "$RPMDIR/SOURCES/ndctl-${VERSION}.tar.gz"
+
+echo "==== build ndctl ===="
 ./autogen.sh
 ./configure
 make
+
+echo "==== update ndctl.spec ===="
+# XXX: pre-process ndctl.spec to remove dependency on libpmem
+# To be removed once ndctl v60 is available.
+sed -i -e "/pkgconfig(libpmem)/d" -e "s/--with-libpmem//g" $SPEC
+
+echo "==== build ndctl packages ===="
+rpmbuild -ba $SPEC
+
+echo "==== install ndctl packages ===="
+rpm -i $RPMDIR/RPMS/x86_64/*.rpm
+
+echo "==== cleanup ===="
+rm -rf $RPMDIR
+
+else
+
+echo "==== build ndctl ===="
+./autogen.sh
+./configure
+make
+
+echo "==== install ndctl ===="
 make install
+
+echo "==== cleanup ===="
+
+fi
+
 cd ..
 rm -rf ndctl