# Copyright 2015 gRPC authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. FROM debian:10 # Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ build-essential \ bzip2 \ ccache \ curl \ dnsutils \ gcc \ gcc-multilib \ git \ golang \ gyp \ lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ libtool \ make \ perl \ strace \ python-dev \ python-setuptools \ python-yaml \ telnet \ unzip \ wget \ zip && apt-get clean #================ # Build profiling RUN apt-get update && apt-get install -y time && apt-get clean # Google Cloud platform API libraries RUN apt-get update && apt-get install -y python-pip && apt-get clean RUN pip install --upgrade google-api-python-client oauth2client # Install Python 2.7 RUN apt-get update && apt-get install -y python2.7 python-all-dev RUN curl https://bootstrap.pypa.io/get-pip.py | python2.7 RUN mkdir /var/local/jenkins #================= # C++ dependencies RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean #======================== # Sanity test dependencies RUN apt-get update && apt-get -t buster install -y python3.7 python3-all-dev RUN curl https://bootstrap.pypa.io/get-pip.py | python3.7 # Make Python 3.7 the default Python 3 version RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1 RUN apt-get update && apt-get install -y \ autoconf \ automake \ libtool \ curl \ shellcheck RUN python2 -m pip install simplejson mako virtualenv==16.7.9 lxml RUN python3 -m pip install simplejson mako virtualenv==16.7.9 lxml # Install clang & clang-format RUN apt-get install -y clang clang-format # Install clang-tidy 6.0 # This is because clang-tidy 7.0 started treating compiler errors as tidy errors # and there are a couple of files which are not properly compiled via tidy so it # should be using 6.0 version until all compilation errors are addressed. RUN apt-get install -y clang-tidy-6.0 ENV CLANG_TIDY=clang-tidy-6.0 #======================== # Bazel installation # Must be in sync with tools/bazel ENV BAZEL_VERSION 1.0.0 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 RUN apt-get update && apt-get install -y wget && apt-get clean RUN wget "https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh" && \ bash ./bazel-$BAZEL_VERSION-installer-linux-x86_64.sh && \ rm bazel-$BAZEL_VERSION-installer-linux-x86_64.sh # Install buildifier v0.29.0 RUN wget https://github.com/bazelbuild/buildtools/releases/download/0.29.0/buildifier RUN chmod +x buildifier RUN mv buildifier /usr/local/bin # Define the default command. CMD ["bash"]