xref: /aosp_15_r20/external/bcc/docker/build/Dockerfile.ubuntu (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
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