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
82
2
# set out workspace
83
3
ENV WORKSPACE=/workspace
84
4
RUN mkdir -p ${WORKSPACE}
85
5
VOLUME ${WORKSPACE}
86
6
WORKDIR ${WORKSPACE}
87
-
7
+ # Set environment variables
8
+ ARG GIT_SSL_NO_VERIFY=1
9
+ ARG DEBIAN_FRONTEND=noninteractive
10
+ # Install and cleanup is done in one command to minimize the build cache size
11
+ RUN apt-get update -qq \
12
+ && apt-get -y install --no-install-recommends \
13
+ # Additional packages not listed in install_apt_packages.sh
14
+ wget \
15
+ git \
16
+ ninja-build \
17
+ libeigen3-dev \
18
+ libtbb-dev \
19
+ python3-pip \
20
+ # Clone VTR repo
21
+ && git clone https://github.com/verilog-to-routing/vtr-verilog-to-routing.git . \
22
+ # Extract package names from install_apt_packages.sh
23
+ && sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed 's/ \\ //g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' \
24
+ # Install packages
25
+ | xargs apt-get -y install --no-install-recommends \
26
+ # Cleanup
27
+ && apt-get autoclean && apt-get clean && apt-get -y autoremove \
28
+ && rm -rf /var/lib/apt/lists/*
29
+ # Install python packages
30
+ RUN pip install -r requirements.txt
31
+ # Build VTR
32
+ RUN make \
33
+ && make install
34
+ # Container's default launch command
88
35
CMD [ "/bin/bash" ]
0 commit comments