-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
130 lines (112 loc) · 6.83 KB
/
Dockerfile
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
FROM ubuntu:20.04
LABEL version="0.0.2"
LABEL authors="Francesco Fuggitti <[email protected]>"
LABEL description="A Docker image to run Trace Alignment experiments."
ARG GITHUB_USER="francescofuggitti"
ARG TOKEN
USER root
ENV DEBIAN_FRONTEND noninteractive
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
ENV PATH="${PATH}:/usr/local/bin:/home/default/.local/bin"
ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
ENV PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.8/site-packages"
RUN apt-get update && \
apt-get install -y dialog && \
apt-get install -y apt-utils && \
apt-get upgrade -y && \
apt-get install -y sudo
# This adds the 'default' user to sudoers with full privileges:
RUN HOME=/home/default && \
mkdir -p ${HOME} && \
GROUP_ID=1001 && \
USER_ID=1001 && \
groupadd -r default -f -g "$GROUP_ID" && \
useradd -u "$USER_ID" -r -g default -d "$HOME" -s /sbin/nologin \
-c "Default Application User" default && \
chown -R "$USER_ID:$GROUP_ID" ${HOME} && \
usermod -a -G sudo default && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN apt-get update
RUN apt-get install -y \
time \
build-essential \
software-properties-common \
gcc-multilib \
g++-multilib \
g++ \
make \
pypy3 \
git \
gdb \
m4 \
autotools-dev \
ca-certificates \
autoconf \
automake \
libtool \
cmake \
flex \
bison \
wget \
vim \
curl \
libboost-dev \
libboost-program-options-dev \
python2 \
gawk \
python3 \
pdf2svg \
groff \
latexmk \
latex-mk \
texlive \
texlive-latex-extra \
texlive-fonts-extra \
texlive-science \
zlib1g-dev \
libssl-dev \
libffi-dev \
python3-venv \
python3-pip \
python3-dev \
openjdk-8-jdk \
graphviz \
libgraphviz-dev
# matplotlib build dependencies
RUN apt-get install -y \
libxft-dev \
libfreetype6 \
libfreetype6-dev
RUN rm -f /usr/bin/python && ln -s /usr/bin/python3 /usr/bin/python && \
rm -f /usr/bin/pip && ln -s /usr/bin/pip3 /usr/bin/pip
RUN pip3 install pipenv
## Build CPLEX
COPY ignore/cplex_studio2211.linux_x86_64.bin ./cplex.bin
RUN chmod +x ./cplex.bin
RUN ./cplex.bin -DLICENSE_ACCEPTED=TRUE -i silent
USER default
WORKDIR /home/default
RUN mkdir /home/default/work
RUN mkdir /home/default/work/tools
WORKDIR /home/default/work
# clone and install downward
#RUN git clone https://github.com/aibasel/downward.git ./tools/downward &&\
# cd tools/downward && ./build.py && cd ../../
# clone and install TraceAligner
RUN git clone https://github.com/whitemech/TraceAligner.git ./tools/tracealigner &&\
cd tools/tracealigner && ./scripts/_ci-install-dependencies-ubuntu.sh &&\
./gradlew build && cd ../../
# clone and install cpddl
RUN git clone https://gitlab.com/danfis/cpddl.git ./tools/cpddl &&\
cd tools/cpddl &&\
echo "IBM_CPLEX_ROOT = /opt/ibm/ILOG/CPLEX_Studio_Community2211" > Makefile.config &&\
./scripts/build.sh && cd ../../
# for plotting
RUN sudo apt-get install -y dvipng texlive-latex-extra texlive-fonts-recommended cm-super
COPY benchmark ./benchmark
COPY bin ./bin
COPY data ./data
COPY scripts ./scripts
COPY requirements.txt ./requirements.txt
RUN sudo pip install -r requirements.txt