From 4b52d41dfd0723d3688e049163fe0692280e2a0b Mon Sep 17 00:00:00 2001 From: alirezazd Date: Tue, 8 Feb 2022 19:49:30 +0330 Subject: [PATCH 1/2] 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 --- Dockerfile | 111 ++++++++++++++--------------------------------------- 1 file changed, 29 insertions(+), 82 deletions(-) diff --git a/Dockerfile b/Dockerfile index 32955a7d4fa..748a3da7d60 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,88 +1,35 @@ -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 - +FROM ubuntu:20.04 # set out workspace ENV WORKSPACE=/workspace RUN mkdir -p ${WORKSPACE} VOLUME ${WORKSPACE} WORKDIR ${WORKSPACE} - +# Set environment variables +ARG GIT_SSL_NO_VERIFY=1 +ARG DEBIAN_FRONTEND=noninteractive +# Install and cleanup is done in one command to minimize the build cache size +RUN apt-get update -qq \ + && apt-get -y install --no-install-recommends \ +# Additional packages not listed in install_apt_packages.sh + wget \ + git \ + ninja-build \ + libeigen3-dev \ + libtbb-dev \ + python3-pip \ +# Clone VTR repo + && git clone https://github.com/verilog-to-routing/vtr-verilog-to-routing.git . \ +# Extract package names from install_apt_packages.sh + && sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed 's/ \\//g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' \ +# Install packages + | xargs apt-get -y install --no-install-recommends \ +# Cleanup + && apt-get autoclean && apt-get clean && apt-get -y autoremove \ + && rm -rf /var/lib/apt/lists/* +# Install python packages +RUN pip install -r requirements.txt +# Build VTR +RUN make \ +&& make install +# Container's default launch command CMD [ "/bin/bash" ] \ No newline at end of file From 7271f68835a25cc8dea1d54b4e4be240f1f80cb8 Mon Sep 17 00:00:00 2001 From: alirezazd Date: Thu, 17 Feb 2022 17:36:45 +0330 Subject: [PATCH 2/2] Applied PR reviews --- Dockerfile | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 748a3da7d60..da3a864398e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,29 @@ FROM ubuntu:20.04 +ARG DEBIAN_FRONTEND=noninteractive # set out workspace ENV WORKSPACE=/workspace RUN mkdir -p ${WORKSPACE} -VOLUME ${WORKSPACE} WORKDIR ${WORKSPACE} -# Set environment variables -ARG GIT_SSL_NO_VERIFY=1 -ARG DEBIAN_FRONTEND=noninteractive +COPY . ${WORKSPACE} # Install and cleanup is done in one command to minimize the build cache size RUN apt-get update -qq \ - && apt-get -y install --no-install-recommends \ +# Extract package names from install_apt_packages.sh + && sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed 's/ \\//g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' \ +# Install packages + | xargs apt-get -y install --no-install-recommends \ # Additional packages not listed in install_apt_packages.sh + && apt-get -y install --no-install-recommends \ wget \ - git \ ninja-build \ libeigen3-dev \ libtbb-dev \ python3-pip \ -# Clone VTR repo - && git clone https://github.com/verilog-to-routing/vtr-verilog-to-routing.git . \ -# Extract package names from install_apt_packages.sh - && sed '/sudo/d' install_apt_packages.sh | sed '/#/d' | sed 's/ \\//g' | sed '/^$/d' | sed '/^[[:space:]]*$/d' \ -# Install packages - | xargs apt-get -y install --no-install-recommends \ +# Install python packages + && pip install -r requirements.txt \ # Cleanup && apt-get autoclean && apt-get clean && apt-get -y autoremove \ && rm -rf /var/lib/apt/lists/* -# Install python packages -RUN pip install -r requirements.txt # Build VTR -RUN make \ -&& make install +RUN make && make install # Container's default launch command -CMD [ "/bin/bash" ] \ No newline at end of file +SHELL ["/bin/bash", "-c"] \ No newline at end of file