-
Notifications
You must be signed in to change notification settings - Fork 2
/
Dockerfile
88 lines (80 loc) · 1.82 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
FROM ubuntu:trusty as builder
RUN apt-get update
RUN apt-get install -y \
software-properties-common
# add auto gpg key other lauchpad ppa
RUN add-apt-repository ppa:nilarimogard/webupd8
RUN apt-get update && apt-get install -y \
launchpad-getkeys
# add llvm PPA
RUN printf "\n\
deb http://ppa.launchpad.net/george-edison55/precise-backports/ubuntu precise main \n\
deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main \n\
deb https://apt.llvm.org/precise llvm-toolchain-precise-3.6 main \n\
deb https://apt.llvm.org/trusty llvm-toolchain-trusty-6.0 main \n\
deb https://apt.llvm.org/trusty llvm-toolchain-trusty-7 main \n\
deb https://apt.llvm.org/trusty llvm-toolchain-trusty-8 main \n\
" >> /etc/apt/sources.list
# grab llvm keys
RUN launchpad-getkeys
RUN apt-get update
RUN apt-get install -y \
ninja \
libssl-dev \
autoconf \
automake \
bash \
bison \
binutils \
binutils-gold \
build-essential \
ctags \
curl \
doxygen \
flex \
fontconfig \
gdb \
git \
gperf \
libcairo2-dev \
libgtk-3-dev \
libevent-dev \
libfontconfig1-dev \
liblist-moreutils-perl \
libncurses5-dev \
libx11-dev \
libxft-dev \
libxml++2.6-dev \
perl \
python \
python-lxml \
texinfo \
time \
valgrind \
zip \
qt5-default \
clang-format-7 \
g++-7 \
gcc-7 \
g++-8 \
gcc-8 \
g++-9 \
gcc-9 \
g++-10 \
gcc-10 \
g++-11 \
gcc-11 \
clang-6.0 \
clang-7 \
clang-10
# install CMake
WORKDIR /tmp
ENV CMAKE=cmake-3.17.0
RUN curl -s https://cmake.org/files/v3.17/${CMAKE}.tar.gz | tar xvzf -
RUN cd ${CMAKE} && ./configure && make && make install
# set out workspace
ENV WORKSPACE=/workspace
RUN mkdir -p ${WORKSPACE}
VOLUME ${WORKSPACE}
WORKDIR ${WORKSPACE}
CMD [ "/bin/bash" ]