-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile-xenial-salome-8.5.0
139 lines (119 loc) · 4.34 KB
/
Dockerfile-xenial-salome-8.5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
ARG OS=ubuntu
ARG DIST=xenial
FROM ${OS}:${DIST}
ARG SALOME_PACKAGE=SALOME-8.5.0-MPI-UB16.04.tgz
ARG SALOME_INSTALLDIR=SALOME-8.5.0-MPI-UB16.04
ARG OS=ubuntu
ARG DIST=xenial
ARG BOOST="1.61.0"
ARG oGPGKEY="4814A19C535D3508"
ARG GPGKEY="535D3508"
ARG DEBIAN_FRONTEND=noninteractive
# at the beginning
RUN apt-get -qq update && \
apt-get -y upgrade && \
apt-get -y --force-yes install gnupg curl dirmngr && \
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
echo "deb http://euler/~trophime/debian/ $DIST main" > /etc/apt/sources.list.d/lncmi.list && \
echo "install $oGPGKEY key" && \
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv $oGPGKEY && \
gpg --export --armor $oGPGKEY | apt-key add - && \
echo "install $oGPGKEY key" && \
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv $GPGKEY && \
gpg --export --armor $GPGKEY | apt-key add -
# Setup demo environment variables
ENV LANG=en_US.UTF-8 \
LANGUAGE=en_US.UTF-8 \
LC_ALL=C.UTF-8 \
DISPLAY=:0.0 \
DISPLAY_WIDTH=1600 \
DISPLAY_HEIGHT=968
# Install git, supervisor, VNC, & X11 packages
RUN apt-get -qq update && \
apt-get -y upgrade && \
apt-cache search libboost && \
apt install -y \
procps net-tools \
wget curl \
emacs-nox vim nano \
lsb-release \
bash bash-completion \
fluxbox \
git \
socat \
supervisor \
x11vnc \
xterm \
xvfb \
mesa-utils mesa-utils-extra && \
apt clean -y
# Clone noVNC from github
RUN git clone https://github.com/kanaka/noVNC.git /root/noVNC \
&& rm -rf /root/noVNC/.git \
&& git clone https://github.com/kanaka/websockify /root/noVNC/utils/websockify \
&& rm -rf /root/noVNC/utils/websockify/.git \
&& apt purge -y git
# General requirements
RUN apt-get install -y \
python-minimal libxss1 \
bash-completion \
emacs vim nano \
lsb-release wget curl \
lshw \
firefox \
mesa-utils binutils kmod iputils-ping net-tools \
libxmu6 libglu1-mesa libxft2 && \
apt-get -y clean
# Use Lncmi repository for Salome specific packages:
# add specific build for mpi salome version:
# OCE, Paraview, gmsh-tetgen, scotch, mumps, petsc, slepc, med-fichier, netgen, hdf5-1.8
# !!! Depends on VERSION !!!
# for 7.8 qt4, oce
# for 8.x qt5, opencascade7.x (7.0 for 8.2, 7.1 for 8.3, 7.2 for 8.4)
RUN apt-get install -y \
mpi-default-bin \
python-minimal libpython2.7 libxss1 \
libxmu6 libglu1-mesa libxft2 \
libcos4-1 \
omniidl omniidl-python omniorb-idl omniorb-nameserver python-omniorb python-omniorb-omg \
libboost-filesystem$BOOST \
libboost-regex$BOOST \
libboost-signals$BOOST \
libboost-thread$BOOST \
libboost-date-time$BOOST \
libboost-chrono$BOOST \
libboost-atomic$BOOST \
graphviz \
valgrind \
openssh-client \
python-psutil python-memory-profiler \
ttf-mscorefonts-installer && \
apt-get -y clean
# # install specific packages required
RUN apt-get -y install \
libhdf5-mpi.dev libnetcdf-dev libcgns-dev libmed-dev libmedc-dev libmedimport-dev libmed-tools \
libgl2ps-dev libfreeimage-dev \
python-cycler python-sphinx sphinx-intl python-sphinxcontrib-napoleon \
python-subprocess32 python-functools32 && \
apt-get -y clean
# alternative use Salome Universal binaries
COPY ${SALOME_PACKAGE} /tmp/${SALOME_PACKAGE}
RUN mkdir -p /opt/DISTENE && \
cd /opt && \
tar zxf /tmp/${SALOME_PACKAGE} && \
rm -f /tmp/${SALOME_PACKAGE}
# Mount /opt/DISTENE as /opt/DISTENE
ENV DISTENE_LICENSE_FILE /opt/DISTENE/DLim/dlim8.key
ENV PATH /opt/${SALOME_INSTALLDIR}/:$PATH
ENV LD_LIBRARY_PATH /usr/lib/paraview:$LD_LIBRARY_PATH
# Install vglrun?
RUN wget https://sourceforge.net/projects/virtualgl/files/2.5.2/virtualgl_2.5.2_amd64.deb/download -O /tmp/virtualgl_2.5.2_amd64.deb && \
dpkg -i /tmp/virtualgl_2.5.2_amd64.deb && \
rm /tmp/virtualgl_2.5.2_amd64.deb
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Modify the launch script 'ps -p'
RUN sed -i -- "s/ps -p/ps -o pid | grep/g" /root/noVNC/utils/launch.sh
# at the end
RUN echo 'debconf debconf/frontend select Dialog' | debconf-set-selections
EXPOSE 8080
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]