1ARG VERSION="18.04" 2FROM ubuntu:${VERSION} 3 4ARG LLVM_VERSION="11" 5ENV LLVM_VERSION=$LLVM_VERSION 6 7ARG SHORTNAME="bionic" 8 9ARG RUBY_INSTALL_VERSION="0.8.4" 10ENV RUBY_INSTALL_VERSION=$RUBY_INSTALL_VERSION 11 12ARG RUBY_VERSION="3.1.2" 13ENV RUBY_VERSION=$RUBY_VERSION 14 15RUN apt-get update && apt-get install -y curl gnupg &&\ 16 llvmRepository="\n\ 17deb http://apt.llvm.org/${SHORTNAME}/ llvm-toolchain-${SHORTNAME} main\n\ 18deb-src http://apt.llvm.org/${SHORTNAME}/ llvm-toolchain-${SHORTNAME} main\n\ 19deb http://apt.llvm.org/${SHORTNAME}/ llvm-toolchain-${SHORTNAME}-${LLVM_VERSION} main\n\ 20deb-src http://apt.llvm.org/${SHORTNAME}/ llvm-toolchain-${SHORTNAME}-${LLVM_VERSION} main\n" &&\ 21 echo $llvmRepository >> /etc/apt/sources.list && \ 22 curl -L https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - 23 24ARG DEBIAN_FRONTEND="noninteractive" 25ENV TZ="Etc/UTC" 26 27RUN apt-get update && apt-get install -y \ 28 util-linux \ 29 bison \ 30 binutils-dev \ 31 cmake \ 32 flex \ 33 g++ \ 34 git \ 35 kmod \ 36 wget \ 37 libelf-dev \ 38 zlib1g-dev \ 39 libiberty-dev \ 40 liblzma-dev \ 41 libbfd-dev \ 42 libedit-dev \ 43 clang-${LLVM_VERSION} \ 44 libclang-${LLVM_VERSION}-dev \ 45 libclang-common-${LLVM_VERSION}-dev \ 46 libclang1-${LLVM_VERSION} \ 47 llvm-${LLVM_VERSION} \ 48 llvm-${LLVM_VERSION}-dev \ 49 llvm-${LLVM_VERSION}-runtime \ 50 libllvm${LLVM_VERSION} \ 51 systemtap-sdt-dev \ 52 sudo \ 53 iproute2 \ 54 python3 \ 55 python3-pip \ 56 ethtool \ 57 arping \ 58 netperf \ 59 iperf \ 60 iputils-ping \ 61 bridge-utils \ 62 libtinfo5 \ 63 libtinfo-dev \ 64 xz-utils \ 65 zip && \ 66 apt-get -y clean 67 68RUN pip3 install pyroute2==0.5.18 netaddr==0.8.0 dnslib==0.9.14 cachetools==3.1.1 69 70# FIXME this is faster than building from source, but it seems there is a bug 71# in probing libruby.so rather than ruby binary 72#RUN apt-get update -qq && \ 73# apt-get install -y software-properties-common && \ 74# apt-add-repository ppa:brightbox/ruby-ng && \ 75# apt-get update -qq && apt-get install -y ruby2.6 ruby2.6-dev 76 77RUN wget -O ruby-install-${RUBY_INSTALL_VERSION}.tar.gz \ 78 https://github.com/postmodern/ruby-install/archive/v${RUBY_INSTALL_VERSION}.tar.gz && \ 79 tar -xzvf ruby-install-${RUBY_INSTALL_VERSION}.tar.gz && \ 80 cd ruby-install-${RUBY_INSTALL_VERSION}/ && \ 81 make install && \ 82 cd .. && \ 83 rm -rf ruby-install-${RUBY_INSTALL_VERSION}* 84 85RUN ruby-install --system ruby ${RUBY_VERSION} -c -- --enable-dtrace 86RUN if [ ! -f "/usr/bin/python" ]; then ln -s /bin/python3 /usr/bin/python; fi 87RUN if [ ! -f "/usr/local/bin/python" ]; then ln -s /usr/bin/python3 /usr/local/bin/python; fi 88