diff --git a/centos-7/Dockerfile b/centos-7/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..56456ed6b0e8a27f5047fe5076d19dcdddc6382d
--- /dev/null
+++ b/centos-7/Dockerfile
@@ -0,0 +1,244 @@
+# SPDX-License-Identifier: MIT
+FROM centos:7
+
+LABEL maintainer="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>"
+LABEL authors="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>"
+
+RUN yum install -y centos-release-scl && \
+    yum install -y epel-release && \
+    yum install -y \
+        devtoolset-8 \
+        ninja-build \
+        bzip2 \
+        desktop-file-utils \
+        curl-devel \
+        expat-devel \
+        zlib-devel \
+        bzip2-devel \
+        xz-devel \
+        libzstd-devel \
+        rhash-devel \
+        libuv-devel \
+        && \
+    ln -s /usr/bin/ninja-build /usr/local/bin/ninja && \
+    yum clean all
+
+RUN version=3.15.5 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSLO https://cmake.org/files/v${version%.*}/cmake-${version}.tar.gz && \
+    tar -xf cmake-${version}.tar.gz && \
+    cd cmake-${version} && \
+    ./bootstrap --system-libs --no-system-libarchive --no-system-jsoncpp  --prefix=/usr/local && \
+    make install -j$(nproc --all) && \
+    cd .. && \
+    rm -rf cmake-${version}*
+
+RUN yum install -y \
+        python36-devel \
+        python36-numpy \
+        && \
+    yum clean all
+
+RUN yum install -y dkms && \
+    cd /tmp && \
+    curl -sSLO https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.1.243-1.x86_64.rpm && \
+    rpm -i cuda-repo-rhel7-*.rpm && \
+    rm -f cuda-repo-rhel7-*.rpm && \
+    yum install -y cuda-10-1 && \
+    yum clean all
+
+RUN yum install -y \
+        nasm \
+        libass-devel \
+        libtheora-devel \
+        libvorbis-devel \
+        freetype-devel
+
+RUN version=4.2.1 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSLO http://ffmpeg.org/releases/ffmpeg-${version}.tar.gz && \
+    tar -xf ffmpeg-${version}.tar.gz && \
+    cd ffmpeg-${version} && \
+    ./configure --prefix=/usr/local --enable-gpl --enable-libfreetype --enable-avresample --enable-shared --disable-static --enable-pic && \
+    make install && \
+    cd .. && \
+    rm -rf ffmpeg-${version}*
+
+RUN version=1.10.5 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSLO https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${version%.*}/hdf5-${version}/src/hdf5-${version}.tar.bz2 && \
+    tar -xf hdf5-${version}.tar.bz2 && \
+    cd hdf5-${version} && \
+    cmake -S. -B build  -G Ninja \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \
+        && \
+    ninja -C build install && \
+    cd .. && \
+    rm -rf hdf5-${version}*
+
+RUN yum install -y \
+        libpng-devel \
+        jasper-devel \
+        openexr-devel \
+        libwebp-devel \
+        libjpeg-turbo-devel \
+        freeglut-devel \
+        mesa-libGL-devel \
+        libtiff-devel \
+        libdc1394-devel \
+        tbb-devel \
+        eigen3-devel \
+        boost-devel \
+        boost-thread \
+        libv4l-devel \
+        openblas-devel \
+        lapack-devel \
+        gstreamer-plugins-base-devel \
+        tesseract-devel \
+        harfbuzz-devel \
+    && \
+    yum clean all
+
+ENV Qt5_DIR /opt/qt5/5.12.6/gcc_64/lib/cmake/Qt5
+ADD qtifwsilent.qs /tmp/qtifwsilent.qs
+RUN version=5.12.6 && \
+    cd /tmp && \
+    curl -sSLO https://download.qt.io/official_releases/qt/${version%.*}/${version}/qt-opensource-linux-x64-${version}.run && \
+    chmod +x qt-opensource-linux-x64-${version}.run && \
+    env QT_INSTALL_DIR=/opt/qt5 ./qt-opensource-linux-x64-${version}.run --script qtifwsilent.qs -platform minimal && \
+    rm -f qt-opensource-linux-x64-${version}.run && \
+    rm -f qtifwsilent.qs && \
+    version=6 && \
+    cd /opt && \
+    curl -sSLO https://github.com/probonopd/linuxdeployqt/releases/download/${version}/linuxdeployqt-${version}-x86_64.AppImage && \
+    chmod +x linuxdeployqt-${version}-x86_64.AppImage && \
+    ./linuxdeployqt-${version}-x86_64.AppImage --appimage-extract && \
+    mv squashfs-root linuxdeployqt-${version} && \
+    ln -s /opt/linuxdeployqt-${version}/AppRun /usr/local/bin/linuxdeployqt
+
+RUN version=3.4.8 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSL -o opencv-${version}.zip https://github.com/opencv/opencv/archive/${version}.zip && \
+    unzip opencv-${version}.zip && \
+    curl -sSL -o opencv_contrib-${version}.zip https://github.com/opencv/opencv_contrib/archive/${version}.zip && \
+    unzip opencv_contrib-${version}.zip && \
+    cd opencv-${version} && \
+    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig && \
+    cmake -S. -B build -G Ninja \
+        -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local \
+        -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \
+        -D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_contrib-${version}/modules \
+        -D ENABLE_CXX11=ON \
+        -D BUILD_EXAMPLES=OFF \
+        -D BUILD_PACKAGE=OFF \
+        -D BUILD_TESTS=OFF \
+        -D BUILD_PERF_TESTS=OFF \
+        -D BUILD_DOCS=OFF \
+        -D OPENCV_ENABLE_NONFREE=OFF \
+        -D WITH_CUDA=ON \
+        -D WITH_CUBLAS=ON \
+        -D BUILD_opencv_cudacodec=OFF \
+        -D WITH_EIGEN=ON \
+        -D WITH_FFMPEG=ON \
+        -D WITH_IPP=ON \
+        -D WITH_JASPER=ON -D BUILD_JASPER=OFF\
+        -D WITH_JPEG=ON -D BUILD_JPEG=OFF\
+        -D WITH_LAPACK=ON \
+        -D WITH_MATLAB=OFF \
+        -D WITH_OPENCLAMDBLAS=OFF \
+        -D WITH_OPENEXR=ON -D BUILD_OPENEXR=OFF\
+        -D WITH_OPENGL=ON \
+        -D WITH_PNG=ON -D BUILD_PNG=OFF \
+        -D WITH_PROTOBUF=ON -D BUILD_PROTOBUF=OFF\
+        -D WITH_QT=ON \
+        -D WITH_TBB=OFF \
+        -D WITH_TIFF=ON -D BUILD_TIFF=OFF \
+        -D WITH_WEBP=ON -D BUILD_WEBP=OFF \
+        -D WITH_ZLIB=ON -D BUILD_ZLIB=OFF \
+        -D WITH_V4L=ON \
+        && \
+    ninja -C build install
+
+ENV MXNet_DIR /opt/mxnet-3.5.1
+RUN version=1.5.1 && \
+    source scl_source enable devtoolset-8 && \
+    cd /opt && \
+    curl -sSLO https://github.com/apache/incubator-mxnet/releases/download/${version}/apache-mxnet-src-${version}-incubating.tar.gz && \
+    tar -xf apache-mxnet-src-${version}-incubating.tar.gz && \
+    rm -f apache-mxnet-src-${version}-incubating.tar.gz && \
+    mv apache-mxnet-src-${version}-incubating mxnet-${version} && \
+    cd mxnet-${version} && \
+    cmake  -S. -B build -G Ninja \
+        -D CMAKE_CXX_STANDARD=14 -D USE_CXX14_IF_AVAILABLE=ON \
+        -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local \
+        -D USE_CUDA=ON -D USE_CUDNN=ON -D USE_NCCL=OFF \
+        -D USE_OPENCV=ON -D USE_OPENMP=ON \
+        -D USE_LAPACK=ON -D USE_MKL_IF_AVAILABLE=OFF \
+        -D USE_DIST_KVSTORE=OFF \
+        -D USE_CPP_PACKAGE=ON \
+        -D USE_SIGNAL_HANDLER=ON \
+        -D ENABLE_CUDA_RTC=ON \
+        -D BUILD_CPP_EXAMPLES=OFF \
+        -D USE_GPERFTOOLS=OFF \
+        -D USE_JEMALLOC=OFF \
+        && \
+    ninja -C build
+
+RUN version=2.3.0 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSL -o pybind11-${version}.tar.gz https://github.com/pybind/pybind11/archive/v${version}.tar.gz && \
+    tar -xf pybind11-${version}.tar.gz && \
+    cd pybind11-${version} && \
+    cmake -S. -B build -G Ninja \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \
+        -DPYBIND11_TEST=off \
+        && \
+    ninja -C build install && \
+    cd .. && \
+    rm -rf pybind11-${version}*
+
+RUN version=2.2.1 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSL -o rpclib-${version}.tar.gz https://github.com/rpclib/rpclib/archive/v2.2.1.tar.gz && \
+    tar -xf rpclib-${version}.tar.gz && \
+    cd rpclib-${version} && \
+    cmake -S. -B build -G Ninja \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \
+        && \
+    ninja -C build install && \
+    cd .. && \
+    rm -rf rpclib-${version}*
+
+RUN yum install -y \
+        openssl-devel \
+        libffi-devel \
+        && \
+    yum clean all
+
+RUN version=3.7.5 && \
+    source scl_source enable devtoolset-8 && \
+    cd /tmp && \
+    curl -sSLO https://www.python.org/ftp/python/${version}/Python-${version}.tgz && \
+    tar -xf Python-${version}.tgz && \
+    cd Python-${version} && \
+    ./configure \
+        --prefix=/usr \
+        --enable-optimizations \
+        --enable-shared \
+        --without-ensurepip \
+        --with-system-expat \
+        --with-system-ffi \
+        && \
+    make -j$(nproc) altinstall && \
+    cd .. && \
+    rm -rf Pyhon-${version}* && \
+    ldconfig
+
+ADD agki-nas01.imp.fu-berlin.de-ca-cert.crt /etc/pki/ca-trust/source/anchors/agki-nas01.imp.fu-berlin.de-ca-cert.crt
+RUN update-ca-trust
diff --git a/centos-7/agki-nas01.imp.fu-berlin.de-ca-cert.crt b/centos-7/agki-nas01.imp.fu-berlin.de-ca-cert.crt
new file mode 100644
index 0000000000000000000000000000000000000000..7f84fd5a7d56da924725a070de4d394ee3abe8e2
--- /dev/null
+++ b/centos-7/agki-nas01.imp.fu-berlin.de-ca-cert.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEPzCCAyegAwIBAgIJAOyqoPAa3NfpMA0GCSqGSIb3DQEBCwUAMIGaMQswCQYD
+VQQGEwJERTEPMA0GA1UECAwGQmVybGluMQ8wDQYDVQQHDAZCZXJsaW4xEjAQBgNV
+BAoMCUZVIEJlcmxpbjEYMBYGA1UECwwPQmlvcm9ib3RpY3MgTGFiMREwDwYDVQQD
+DAhSb2JvRmlzaDEoMCYGCSqGSIb3DQEJARYZbW9lbmNrQHplZGF0LmZ1LWJlcmxp
+bi5kZTAeFw0xODEwMDQxMjA0MDJaFw0yODEwMDExMjA0MDJaMIGaMQswCQYDVQQG
+EwJERTEPMA0GA1UECAwGQmVybGluMQ8wDQYDVQQHDAZCZXJsaW4xEjAQBgNVBAoM
+CUZVIEJlcmxpbjEYMBYGA1UECwwPQmlvcm9ib3RpY3MgTGFiMREwDwYDVQQDDAhS
+b2JvRmlzaDEoMCYGCSqGSIb3DQEJARYZbW9lbmNrQHplZGF0LmZ1LWJlcmxpbi5k
+ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAORjbFrj8BZpKJek3hIN
+0jLRe2qt2JQU2OeCRRblsf4T/2DQAl/aKRNwuEyuDa+qqLIOpiHvABrhyZIG004k
+cCsQ9y7lVXLQSJSrnh9ZoBJjMak0LIH1s26O2Ga8CfZUSkVv9naWQdDu4jF6FGj1
+3laRVJu/ode/cBooP/ZQmEVtjAqvV8HqAhbJ3e2Syg9XAUvMYgtvsAoT4/dYwcN3
+D8etb/JUQgok3cxYr3WUCTT6LU4s/gk/jCPAzkdGVGRIDdmRVZezV8KwKYNsMgVC
+9W1d8klU1wovqlfsZJFIXnkK25iwQ+rDHZI/qLvTWpV0Pp7cgCoXX0dProgvs8vV
+pAkCAwEAAaOBhTCBgjAkBgNVHREEHTAbgRltb2VuY2tAemVkYXQuZnUtYmVybGlu
+LmRlMA8GA1UdEwQIMAYBAf8CAQAwNgYJYIZIAYb4QgENBCkWJ21vZF9zc2wgZ2Vu
+ZXJhdGVkIGN1c3RvbSBDQSBjZXJ0aWZpY2F0ZTARBglghkgBhvhCAQEEBAMCAgQw
+DQYJKoZIhvcNAQELBQADggEBAN/C2ly2kYGEK2Z1y978jSEPgnN8NmhAgCAzv1jT
+7D1ooKf0vDhv5WOt5+ESizlWFlBMYBwvl4di+vz6uZF0rHy9Pvdfrzerhy9bkTaq
+JHOPhcvUjDR8UkxcIcPQt8Yn5c5cOdVMlCh1ztlk3a0sic9SrP5YsnxPhmUoUHld
+c0xd20vh6+IyH38SnOOtoztZRjkk+VWAcTRzbvOhknBKuDJ4QXluW2ArxmFbg4EY
+E0RPrrOkyHKUr86Srpqk5r3J9VZHfTn0pqYcWITE0Qjh6EMJNGD2epeXVF9RISYE
++GoIQDhFw3ZDaNJ3fvbwFQd7hhxrBJMpNC4nJVyBvnU8Tnc=
+-----END CERTIFICATE-----
diff --git a/centos-7/qtifwsilent.qs b/centos-7/qtifwsilent.qs
new file mode 100644
index 0000000000000000000000000000000000000000..e421e72486e456ada45d4ae938cd574c8fa4770f
--- /dev/null
+++ b/centos-7/qtifwsilent.qs
@@ -0,0 +1,51 @@
+function Controller() {
+    installer.autoRejectMessageBoxes();
+    installer.installationFinished.connect(function() {
+        gui.clickButton(buttons.NextButton);
+    })
+}
+
+Controller.prototype.WelcomePageCallback = function() {
+    gui.clickButton(buttons.NextButton, 7000);
+}
+
+Controller.prototype.CredentialsPageCallback = function() {
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.IntroductionPageCallback = function() {
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.TargetDirectoryPageCallback = function() {
+    gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR"));
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.ComponentSelectionPageCallback = function() {
+    var widget = gui.currentPageWidget();
+    widget.deselectAll();
+    widget.selectComponent("qt.qt5.5126.gcc_64");
+    widget.selectComponent("qt.qt5.5126.qtcharts");
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.LicenseAgreementPageCallback = function() {
+    gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.StartMenuDirectoryPageCallback = function() {
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.ReadyForInstallationPageCallback = function() {
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.FinishedPageCallback = function() {
+    var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
+    if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox)
+        checkBoxForm.launchQtCreatorCheckBox.checked = false;
+    gui.clickButton(buttons.FinishButton);
+}