Skip to content
Snippets Groups Projects
Commit 18e4564b authored by calrama's avatar calrama
Browse files

Add CentOS 7 based development image

parent a8bb65fe
Branches
No related tags found
No related merge requests found
# 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
-----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-----
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);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment