This repository has been archived by the owner on Aug 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 16
/
Dockerfile
43 lines (33 loc) · 1.74 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
# Note: Since git repositories are cloned, an active internet connection is required
# The predictions were performed on Debian 9 (stretch)
FROM debian:bullseye
# Set the working directory to /app
WORKDIR /application
RUN apt update
# Add mono package repository and update repositories
RUN apt install -y -qq apt-transport-https dirmngr gnupg ca-certificates \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \
&& echo "deb https://download.mono-project.com/repo/debian stable-buster main" | tee /etc/apt/sources.list.d/mono-official-stable.list \
&& apt update
# Install git and wget
RUN apt install -y -qq git wget unzip mono-complete mono-devel nuget
# Install libgomp1 (dependency for z3)
RUN apt install -y -qq libgomp1
# Download z3 (the library is needed for the constraint solver that is used inside SPL Conqueror)
RUN wget https://github.com/Z3Prover/z3/releases/download/z3-4.7.1/z3-4.7.1-x64-debian-8.10.zip \
&& unzip z3-4.7.1-x64-debian-8.10.zip \
&& rm z3-4.7.1-x64-debian-8.10.zip \
&& mv z3-4.7.1-x64-debian-8.10 z3 \
&& cp z3/bin/libz3.so /usr/lib/libz3.so
# Download SPL Conqueror and build it
RUN git clone --depth=1 https://github.com/se-passau/SPLConqueror.git \
&& cd SPLConqueror/SPLConqueror/ \
&& git submodule update --init \
&& nuget restore ./ \
&& msbuild /p:Configuration=Release /p:TargetFrameworkVersion="v4.5" /p:TargetFrameworkProfile="" ./SPLConqueror.sln \
&& cd ../..
# Install Python and its dependencies for the ML algorithms
RUN apt install -y -qq python3 virtualenv \
&& virtualenv --python=python3 python3-env \
&& . ./python3-env/bin/activate \
&& pip3 install -r ./SPLConqueror/SPLConqueror/requirements.txt