# 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 # Install Python 2.7 RUN apt-get update && apt-get install -y python2.7 python-all-dev RUN curl https://bootstrap.pypa.io/2.7/get-pip.py | python2.7 # Google Cloud platform API libraries RUN pip install --upgrade google-auth==1.24.0 google-api-python-client==1.12.8 oauth2client==4.1.0 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 six # Upgrade Python's YAML library RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user # Add buster-backports for more recent clang packages RUN echo "deb http://deb.debian.org/debian buster-backports main" | tee /etc/apt/sources.list.d/buster-backports.list # Install clang, clang-format, and clang-tidy RUN apt-get update && apt-get install -y clang clang-format-8 clang-tidy-8 jq ENV CLANG_FORMAT=clang-format-8 ENV CLANG_TIDY=clang-tidy-8 #======================== # Bazel installation # Must be in sync with tools/bazel ENV BAZEL_VERSION 3.7.1 # 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"]