Skip to content

Commit c4cf096

Browse files
committed
Merge branch 'dockerfile_improvements'
2 parents f72b73e + 26fb47f commit c4cf096

File tree

4 files changed

+457
-140
lines changed

4 files changed

+457
-140
lines changed

tools/installer/Dockerfiles/centos7/Dockerfile

Lines changed: 81 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ RUN yum --enablerepo=extras install epel-release -y
1919
RUN yum update -y
2020

2121
# Install packages
22-
RUN yum install tk-devel lapack-devel cmake tcl tcl-devel expect tkinter openssh-server gcc gcc-c++ wget xz make vim openssl-devel openssh-clients rpm-build ruby-devel libpng libpng-devel sqlite-devel qt5-qtbase qt5-qtbase-devel -y
22+
RUN yum install libxkbcommon tk-devel lapack-devel cmake tcl tcl-devel expect tkinter openssh-server gcc gcc-c++ wget xz make vim openssl-devel openssh-clients rpm-build ruby-devel libpng libpng-devel sqlite-devel freeglut-devel libxcb libxcb-devel xcb-util xcb-util-devel git -y
2323

2424
# Download python 2.7.11
2525
# For more information about the compilation of the Python: http://www.mathworks.com/help/matlab/matlab_external/system-requirements-for-matlab-engine-for-python.html?requestedDomain=www.mathworks.com
2626
WORKDIR /tmp
2727
RUN wget -q https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz && \
2828
tar xJvf Python-2.7.11.tar.xz && \
29-
cd Python-2.7.11 && ./configure --enable-shared --enable-unicode=ucs4 --prefix=/opt/mlc-python-2.7.11 && \
30-
make && make install
29+
cd Python-2.7.11 && ./configure --enable-shared --enable-unicode=ucs4 --prefix=/opt/mlc-python-2.7.11 && make && make install && \
30+
rm -rf /tmp/Python-2.7.11*
3131

3232
# Create .sh who will load the desired enviroment to run python within it
3333
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_python && \
@@ -44,17 +44,17 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_python && \
4444
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_python && \
4545
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_python
4646

47-
4847
# Install Python Setuptools
4948
RUN wget -q https://pypi.python.org/packages/source/s/setuptools/setuptools-20.1.1.tar.gz#md5=10a0f4feb9f2ea99acf634c8d7136d6d && \
5049
tar xzvf setuptools-20.1.1.tar.gz && \
51-
cd setuptools-20.1.1 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install
52-
50+
cd setuptools-20.1.1 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install && \
51+
rm -rf /tmp/setuptools-20.1.1*
5352

5453
# Idem with pip
5554
RUN wget -q https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb && \
5655
tar xzvf pip-8.0.2.tar.gz && \
57-
cd pip-8.0.2 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install
56+
cd pip-8.0.2 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install && \
57+
rm -rf /tmp/pip-8.0.2*
5858

5959
# Create .sh who will load the desired enviroment to run pip within it
6060
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
@@ -71,37 +71,66 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
7171
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
7272
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_pip
7373

74+
# Install Qt5.7
75+
RUN git clone git://code.qt.io/qt/qtbase.git && \
76+
cd qtbase && \
77+
git checkout 5.7 && \
78+
./configure --prefix=/opt/mlc-python-2.7.11/Qt-5.7.1 -xkb-config-root /usr/share/X11/xkb -no-gtk -nomake tests -nomake examples -qt-xcb --opensource --confirm-license && make -j4 && make install && \
79+
rm -rf /tmp/qtbase
7480

75-
# Install mlc dependencies
76-
RUN /opt/mlc-python-2.7.11/bin/mlc_pip install pyserial numpy nose matplotlib scipy pyyaml flask requests
77-
78-
# Create .sh who will load the desired enviroment to run nosetests within it
79-
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests && \
80-
echo "" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
81-
echo "# Add the correct path to the LD_LIBRARY_PATH enviroment variable" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
82-
echo 'export LD_LIBRARY_PATH=/opt/mlc-python-2.7.11/lib:$LD_LIBRARY_PATH' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
83-
echo 'NOSETESTS="/opt/mlc-python-2.7.11/bin/nosetests"' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
84-
echo "" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
85-
echo "# Run the dynamically compiled nosetests" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
86-
echo 'if [ "$#" -ne 0 ]; then' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
87-
echo ' $NOSETESTS $@' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
88-
echo "else" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
89-
echo ' $NOSETESTS' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
90-
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
91-
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_nosetests
92-
93-
# Install PyQt5 Environment
94-
RUN wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.18.1/sip-4.18.1.tar.gz && \
95-
tar xzvf sip-4.18.1.tar.gz && \
96-
cd sip-4.18.1 && \
81+
RUN git clone git://code.qt.io/qt/qtcharts.git && \
82+
cd qtcharts && \
83+
git checkout 5.7 && \
84+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
85+
rm -rf /tmp/qtcharts
86+
87+
RUN git clone git://code.qt.io/qt/qtdatavis3d.git && \
88+
cd qtdatavis3d && \
89+
git checkout 5.7 && \
90+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
91+
rm -rf /tmp/qtdatavis3d
92+
93+
RUN git clone git://code.qt.io/qt/qtdeclarative.git && \
94+
cd qtdeclarative && \
95+
git checkout 5.7 && \
96+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
97+
rm -rf /tmp/qtdeclarative
98+
99+
RUN git clone git://code.qt.io/qt/qtx11extras.git && \
100+
cd qtx11extras && \
101+
git checkout 5.7 && \
102+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
103+
rm -rf /tmp/qtx11extras
104+
105+
# Add PyQt5 Support
106+
RUN wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19/sip-4.19.tar.gz && \
107+
tar xzvf sip-4.19.tar.gz && \
108+
cd sip-4.19 && \
97109
/opt/mlc-python-2.7.11/bin/mlc_python configure.py && \
98-
make && make install
110+
make -j4 && make install && \
111+
rm -rf /tmp/sip-4.19*
99112

100-
RUN wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7/PyQt5_gpl-5.7.tar.gz && \
101-
tar xzvf PyQt5_gpl-5.7.tar.gz && \
102-
cd PyQt5_gpl-5.7 && \
103-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --confirm-license --sip /opt/mlc-python-2.7.11/bin/sip && \
104-
make && make install
113+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7.1/PyQt5_gpl-5.7.1.tar.gz && \
114+
tar xzvf PyQt5_gpl-5.7.1.tar.gz && \
115+
cd PyQt5_gpl-5.7.1 && \
116+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --confirm-license --sip /opt/mlc-python-2.7.11/bin/sip && \
117+
make -j4 && make install && \
118+
rm -rf /tmp/PyQt5_gpl-5.7.1*
119+
120+
# Add PyQt5 Charts
121+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtChart/PyQtChart-5.7.1/PyQtChart_gpl-5.7.1.tar.gz && \
122+
tar xzvf PyQtChart_gpl-5.7.1.tar.gz && \
123+
cd PyQtChart_gpl-5.7.1 && \
124+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --sip /opt/mlc-python-2.7.11/bin/sip && \
125+
make -j4 && make install && \
126+
rm -rf /tmp/PyQtChart_gpl-5.7.1*
127+
128+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtDataVisualization/PyQtDataVisualization-5.7.1/PyQtDataVisualization_gpl-5.7.1.tar.gz/download -O PyQtDataVisualization_gpl-5.7.1.tar.gz && \
129+
tar xzvf PyQtDataVisualization_gpl-5.7.1.tar.gz && \
130+
cd PyQtDataVisualization_gpl-5.7.1 && \
131+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --sip /opt/mlc-python-2.7.11/bin/sip && \
132+
make -j4 && make install && \
133+
rm -rf /tmp/PyQtDataVisualization_gpl-5.7.1*
105134

106135
# Create .sh who will load the desired enviroment to run pip within it
107136
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
@@ -118,18 +147,23 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
118147
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
119148
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_pyuic5
120149

121-
# Add PyQt5 Charts
122-
RUN yum update -y && yum install git -y
123-
RUN git clone git://code.qt.io/qt/qtcharts.git && \
124-
cd qtcharts && \
125-
git checkout release-2.1.0 && \
126-
/usr/bin/qmake-qt5 && make && make install
150+
# Install mlc dependencies
151+
RUN /opt/mlc-python-2.7.11/bin/mlc_pip install pyserial numpy nose matplotlib scipy pyyaml flask requests
127152

128-
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtChart/PyQtChart-5.7/PyQtChart_gpl-5.7.tar.gz && \
129-
tar xzvf PyQtChart_gpl-5.7.tar.gz && \
130-
cd PyQtChart_gpl-5.7 && \
131-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --qtchart-version=2.1.0 --sip /opt/mlc-python-2.7.11/bin/sip && \
132-
make && make install
153+
# Create .sh who will load the desired enviroment to run nosetests within it
154+
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests && \
155+
echo "" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
156+
echo "# Add the correct path to the LD_LIBRARY_PATH enviroment variable" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
157+
echo 'export LD_LIBRARY_PATH=/opt/mlc-python-2.7.11/lib:$LD_LIBRARY_PATH' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
158+
echo 'NOSETESTS="/opt/mlc-python-2.7.11/bin/nosetests"' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
159+
echo "" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
160+
echo "# Run the dynamically compiled nosetests" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
161+
echo 'if [ "$#" -ne 0 ]; then' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
162+
echo ' $NOSETESTS $@' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
163+
echo "else" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
164+
echo ' $NOSETESTS' >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
165+
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_nosetests \
166+
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_nosetests
133167

134168
# Install fpm and create .deb package
135-
RUN gem install fpm && fpm -s dir -t rpm -v 0.4 -n mlc-python /opt/mlc-python-2.7.11
169+
RUN gem install fpm && fpm -s dir -t rpm -v 0.5 -n mlc-python /opt/mlc-python-2.7.11

0 commit comments

Comments
 (0)