-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
67 lines (55 loc) · 1.64 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
FROM ubuntu:23.04 AS base
RUN set -e
ENV DEBIAN_FRONTEND=noninteractive
# Install packages
RUN apt-get -y update
RUN apt-get install -y --no-install-recommends\
python3\
python3-pip\
g++\
gcc\
make\
time
FROM base AS base-git
RUN apt-get install -y --no-install-recommends\
cmake\
git
FROM base-git AS dynamorio
WORKDIR /opt
#RUN apt-get install -y --no-install-recommends patch
RUN git clone --depth=1 https://github.com/DynamoRIO/dynamorio -b release_10.0.0 &&\
mkdir -p dynamorio/build &&\
cd dynamorio/build &&\
cmake .. &&\
make -j4
FROM base-git AS vamos
COPY --from=dynamorio /opt/dynamorio/build /opt/dynamorio/build
WORKDIR /opt
# Install LLVM and clang
RUN apt-get install -y --no-install-recommends clang llvm-dev
# Clone VAMOS and copy the experiments
RUN git clone --depth=1 https://github.com/ista-vamos/vamos -b sttt
COPY . /opt/vamos/sttt-experiments
WORKDIR /opt/vamos/sttt-experiments
RUN git clean -xdf
#compile VAMOS
WORKDIR /opt/vamos
RUN make -j2 CC=clang CXX=clang++ BUILD_TYPE=Debug DynamoRIO_DIR=/opt/dynamorio/build/cmake\
LIBINPUT_SOURCES=OFF WLDBG_SOURCES=OFF
# copy and setup the experiments
RUN make sttt-experiments DynamoRIO_DIR=/opt/dynamorio/build/cmake
FROM base as prepare-artifact
RUN mkdir /opt/results
RUN apt-get install -y --no-install-recommends\
cargo\
clang \
valgrind\
python3-matplotlib\
python3-pandas\
python3-seaborn\
llvm\
libclang-rt-dev
FROM prepare-artifact as artifact
COPY --from=vamos /opt/vamos /opt/vamos
COPY --from=dynamorio /opt/dynamorio/build /opt/dynamorio/build
WORKDIR /opt/vamos/sttt-experiments