1
- FROM ubuntu:trusty as builder
2
-
3
- RUN apt-get update
4
- RUN apt-get install -y \
5
- software-properties-common
6
-
7
- # add auto gpg key other lauchpad ppa
8
- RUN add-apt-repository ppa:nilarimogard/webupd8
9
- RUN apt-get update && apt-get install -y \
10
- launchpad-getkeys
11
-
12
- # add llvm PPA
13
- RUN printf "\n \
14
- deb http://ppa.launchpad.net/george-edison55/precise-backports/ubuntu precise main \n \
15
- deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main \n \
16
- deb https://apt.llvm.org/precise llvm-toolchain-precise-3.6 main \n \
17
- deb https://apt.llvm.org/trusty llvm-toolchain-trusty-6.0 main \n \
18
- deb https://apt.llvm.org/trusty llvm-toolchain-trusty-7 main \n \
19
- deb https://apt.llvm.org/trusty llvm-toolchain-trusty-8 main \n \
20
- " >> /etc/apt/sources.list
21
-
22
- # grab llvm keys
23
- RUN launchpad-getkeys
24
-
25
- RUN apt-get update
26
- RUN apt-get install -y \
27
- ninja \
28
- libssl-dev \
29
- autoconf \
30
- automake \
31
- bash \
32
- bison \
33
- binutils \
34
- binutils-gold \
35
- build-essential \
36
- ctags \
37
- curl \
38
- doxygen \
39
- flex \
40
- fontconfig \
41
- gdb \
42
- git \
43
- gperf \
44
- libcairo2-dev \
45
- libgtk-3-dev \
46
- libevent-dev \
47
- libfontconfig1-dev \
48
- liblist-moreutils-perl \
49
- libncurses5-dev \
50
- libx11-dev \
51
- libxft-dev \
52
- libxml++2.6-dev \
53
- perl \
54
- python \
55
- python-lxml \
56
- texinfo \
57
- time \
58
- valgrind \
59
- zip \
60
- qt5-default \
61
- clang-format-7 \
62
- g++-7 \
63
- gcc-7 \
64
- g++-8 \
65
- gcc-8 \
66
- g++-9 \
67
- gcc-9 \
68
- g++-10 \
69
- gcc-10 \
70
- g++-11 \
71
- gcc-11 \
72
- clang-6.0 \
73
- clang-7 \
74
- clang-10
75
-
76
- # install CMake
77
- WORKDIR /tmp
78
- ENV CMAKE=cmake-3.17.0
79
- RUN curl -s https://cmake.org/files/v3.17/${CMAKE}.tar.gz | tar xvzf -
80
- RUN cd ${CMAKE} && ./configure && make && make install
81
-
1
+ FROM ubuntu:20.04
2
+ ARG DEBIAN_FRONTEND=noninteractive
82
3
# set out workspace
83
4
ENV WORKSPACE=/workspace
84
5
RUN mkdir -p ${WORKSPACE}
85
- VOLUME ${WORKSPACE}
86
6
WORKDIR ${WORKSPACE}
87
-
88
- CMD [ "/bin/bash" ]
7
+ COPY . ${WORKSPACE}
8
+ # Install and cleanup is done in one command to minimize the build cache size
9
+ RUN apt-get update -qq \
10
+ # Extract package names from install_apt_packages.sh
11
+ && sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed 's/ \\ //g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' \
12
+ # Install packages
13
+ | xargs apt-get -y install --no-install-recommends \
14
+ # Additional packages not listed in install_apt_packages.sh
15
+ && apt-get -y install --no-install-recommends \
16
+ wget \
17
+ ninja-build \
18
+ libeigen3-dev \
19
+ libtbb-dev \
20
+ python3-pip \
21
+ # Install python packages
22
+ && pip install -r requirements.txt \
23
+ # Cleanup
24
+ && apt-get autoclean && apt-get clean && apt-get -y autoremove \
25
+ && rm -rf /var/lib/apt/lists/*
26
+ # Build VTR
27
+ RUN make && make install
28
+ # Container's default launch command
29
+ SHELL ["/bin/bash" , "-c" ]
0 commit comments