-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDockerfile
More file actions
74 lines (67 loc) · 3.37 KB
/
Dockerfile
File metadata and controls
74 lines (67 loc) · 3.37 KB
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
FROM debian:trixie
RUN apt-get -y update \
&& apt-get -y upgrade \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y locales \
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
&& dpkg-reconfigure --frontend=noninteractive locales \
&& update-locale LANG=en_US.UTF-8 \
&& apt-get install -y build-essential cmake python3-dev qtbase5-dev \
libmotif-dev libx11-dev libxext-dev libxpm-dev vim fvwm libxt-dev \
xvfb wget \
&& apt-get install -qqy x11-apps
WORKDIR /tmp
# variables used for compilation, they can be removed after the built
ENV WK=/tmp/ecflow_build/ecFlow-Source \
BOOST_ROOT=/usr \
BR=/tmp/ecflow_build/boost_1_71_0 TB=boost_1_71_0.tar.gz \
COMPILE=0 \
HTTPB=https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/${TB} \
HTTP=https://confluence.ecmwf.int/download/attachments/8650755
RUN mkdir -p ${WK}/build
RUN rm -rf /tmp/ecflow_build
RUN mkdir -p /tmp/ecflow_build
RUN ln -sf /usr/lib/x86_64-linux-gnu /usr/lib64
RUN apt-get -y update --fix-missing
RUN apt-get -y install --fix-missing apt-utils qtscript5-dev libssl-dev unzip
ENV PATH=/root/bin:$PATH CMAKE_MODULE_PATH=/root/cmake:/root
RUN apt-get -y install libqt5widgets5 libqt5network5 libqt5gui5 libqt5svg5-dev libqt5charts5-dev doxygen
RUN cd ${DBUILD} && wget -O ecbuild.zip \
https://github.com/ecmwf/ecbuild/archive/refs/heads/develop.zip && \
unzip ecbuild.zip && \
cd ecbuild-* && mkdir build && cd build # && cmake ../ && make && make install
RUN apt-get -y install libboost1.83-all libboost1.83-all-dev
ENV BOOST_ROOT=/usr
RUN apt-get -y install git
RUN mkdir -p ${WK} && cd ${WK} && git clone https://github.com/ecmwf/ecflow.git && cd ecflow && mkdir -p build && cd build
RUN sed -i "s| Boost ${ECFLOW_BOOST_VERSION} REQUIRED| Boost REQUIRED |g" ${WK}/ecflow/CMakeLists.txt
RUN sed -i "70i set ( ENABLE_STATIC_BOOST_LIBS OFF) " ${WK}/ecflow/CMakeLists.txt
RUN sed -i "14i find_package( Boost ) " ${WK}/ecflow/CMakeLists.txt
RUN sed -i '/^[^#]/ s/\(^.*set(ECFLOW_BOOST_VERSION.*$\)/#\ \1/' ${WK}/ecflow/CMakeLists.txt
RUN apt-get -y install libboost1.83-dev git
RUN apt-get update && apt-get install -y libboost1.83-all-dev
RUN apt-get -y install libboost1.83-dev git # && apt install libboost-timer
RUN apt-get update && apt-get install -y cmake build-essential
RUN cd ${WK}/ecflow/build && cmake -DBOOST_ROOT=/usr -B . -S .. || :
RUN cd ${WK}/ecflow/build && cmake -DBOOST_ROOT=/usr -B . -S .. && make -j2 && make install
ENV TE=ecFlow-5.15.2-Source.tar.gz
RUN cd /tmp/ecflow_build && wget --output-document=${TE} ${HTTP}/${TE}?api=v2 && tar -xzvf ${TE} || true
RUN cd ${WK}/ecflow/build && cmake .. -DCMAKE_MODULE_PATH=/root/cmake -DENABLE_UI=ON
RUN apt install -y rsync
COPY ecflow_start_nohup.sh /usr/local/bin/ecflow_start_nohup.sh
# environment variables for ecFlow server
ENV ECFLOW_USER=ecflow \
ECF_PORT=3141 \
ECF_HOME=/home/ecflow/ecflow_server \
HOME=/home/ecflow \
HOST=ecflow \
LANG=en_US.UTF-8 \
PYTHONPATH=/usr/local/lib/python3.8/site-packages
EXPOSE ${ECF_PORT}
RUN groupadd --system ${ECFLOW_USER} \
&& useradd --create-home --system --gid ${ECFLOW_USER} ${ECFLOW_USER} \
&& chown ecflow /home/ecflow && chgrp ecflow /home/ecflow
USER ecflow
WORKDIR /home/ecflow
ENV DISPLAY=:0
RUN mkdir $ECF_HOME && echo "5.15.2 # version" > $ECF_HOME/ecf.lists && echo "$ECFLOW_USER" >> $ECF_HOME/ecf.lists