-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdockerfile
84 lines (69 loc) · 1.95 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
FROM ubuntu:20.04
COPY set_umask.sh set_umask.sh
ENTRYPOINT ["./set_umask.sh"]
RUN echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf.d/00-docker
RUN echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf.d/00-docker
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update \
&& rm -rf /var/lib/apt/lists/*
ARG CC=gcc-9
COPY criu/scripts/ci/apt-install /bin/apt-install
# On Ubuntu, kernel modules such as ip_tables and xt_mark may not be loaded by default
# We need to install kmod to enable iptables to load these modules for us.
RUN apt-install \
libnet-dev \
libnl-route-3-dev \
$CC \
bsdmainutils \
build-essential \
git-core \
iptables \
libaio-dev \
libbsd-dev \
libcap-dev \
libgnutls28-dev \
libgnutls30 \
libnftables-dev \
libnl-3-dev \
libprotobuf-c-dev \
libprotobuf-dev \
libselinux-dev \
iproute2 \
kmod \
pkg-config \
protobuf-c-compiler \
protobuf-compiler \
python-protobuf \
python-ipaddress \
python2 \
sudo \
wget \
ca-certificates \
libpcre3-dev \
vim \
curl
# pip2 dependency needs to solved by using this method
RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
RUN python2 get-pip.py
RUN useradd -ms /bin/bash dynacut-usr
RUN echo "dynacut-usr:pass" | chpasswd && adduser dynacut-usr sudo
WORKDIR /home/dynacut-usr
RUN mkdir -m 775 -p DynaCut
COPY . /home/dynacut-usr/DynaCut/
RUN chown -R dynacut-usr:dynacut-usr /home/dynacut-usr/DynaCut
USER dynacut-usr
WORKDIR /home/dynacut-usr/DynaCut/criu
RUN date && \
# Check single object build
make -j $(nproc) CC="$CC" criu/parasite-syscall.o && \
# Compile criu
make -j $(nproc) CC="$CC" && \
date && \
# Check that "make mrproper" works
make mrproper
# Re-compile criu and compile tests for 'make docker-test'
RUN make -j $(nproc) CC="$CC" && \
date && make -j $(nproc) CC="$CC" -C test/zdtm && date
RUN pip2 install capstone pyelftools==0.29
WORKDIR /home/dynacut-usr/DynaCut
ENV USER=dynacut-usr