Skip to content

Commit aa8e622

Browse files
committed
Fixed root Dockerfile for building vtr container
- The image is now based on Ubuntu 20:04 LTS - Derive build packages from install_apt_packages.sh & requirements.txt
1 parent 81b5aa2 commit aa8e622

File tree

1 file changed

+29
-82
lines changed

1 file changed

+29
-82
lines changed

Dockerfile

Lines changed: 29 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,35 @@
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
822
# set out workspace
833
ENV WORKSPACE=/workspace
844
RUN mkdir -p ${WORKSPACE}
855
VOLUME ${WORKSPACE}
866
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
8835
CMD [ "/bin/bash" ]

0 commit comments

Comments
 (0)