Upgrade C++ and Python docker images to debian stable (debian 11) (#28664)

* upgrade C++ and python docker images

* regenerate dockerfiles

* upgrade grpc_artifact_python docker images

* adjust run_tests scripts to dockerimages upgrades
pull/28678/head
Jan Tattermusch 3 years ago committed by GitHub
parent e4107caf26
commit 27b6b45c32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      templates/tools/dockerfile/ccache.include
  2. 5
      templates/tools/dockerfile/cmake_from_install_script.include
  3. 20
      templates/tools/dockerfile/compile_python_310.include
  4. 1
      templates/tools/dockerfile/compile_python_36.include
  5. 20
      templates/tools/dockerfile/compile_python_37.include
  6. 1
      templates/tools/dockerfile/compile_python_38.include
  7. 2
      templates/tools/dockerfile/interoptest/grpc_interop_python/Dockerfile.template
  8. 2
      templates/tools/dockerfile/interoptest/grpc_interop_pythonasyncio/Dockerfile.template
  9. 0
      templates/tools/dockerfile/python_debian11_base.include
  10. 7
      templates/tools/dockerfile/python_stretch_base.include
  11. 1
      templates/tools/dockerfile/test/cxx_alpine_x64/Dockerfile.template
  12. 1
      templates/tools/dockerfile/test/cxx_clang_13_x64/Dockerfile.template
  13. 1
      templates/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile.template
  14. 3
      templates/tools/dockerfile/test/cxx_debian11_openssl102_x64/Dockerfile.template
  15. 3
      templates/tools/dockerfile/test/cxx_debian11_x64/Dockerfile.template
  16. 3
      templates/tools/dockerfile/test/cxx_debian11_x86/Dockerfile.template
  17. 26
      templates/tools/dockerfile/test/cxx_debian9_x64/Dockerfile.template
  18. 1
      templates/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile.template
  19. 2
      templates/tools/dockerfile/test/python_alpine_x64/Dockerfile.template
  20. 18
      templates/tools/dockerfile/test/python_debian11_default_x64/Dockerfile.template
  21. 22
      templates/tools/dockerfile/test/python_stretch_3.5_x64/Dockerfile.template
  22. 22
      templates/tools/dockerfile/test/python_stretch_3.6_x64/Dockerfile.template
  23. 25
      templates/tools/dockerfile/test/python_stretch_3.7_x64/Dockerfile.template
  24. 23
      templates/tools/dockerfile/test/python_stretch_3.8_x64/Dockerfile.template
  25. 26
      tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile
  26. 26
      tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile
  27. 14
      tools/dockerfile/grpc_artifact_python_manylinux2014_x64/Dockerfile
  28. 14
      tools/dockerfile/grpc_artifact_python_manylinux2014_x86/Dockerfile
  29. 1
      tools/dockerfile/test/bazel/Dockerfile
  30. 1
      tools/dockerfile/test/binder_transport_apk/Dockerfile
  31. 14
      tools/dockerfile/test/cxx_alpine_x64/Dockerfile
  32. 14
      tools/dockerfile/test/cxx_clang_13_x64/Dockerfile
  33. 14
      tools/dockerfile/test/cxx_clang_4_x64/Dockerfile
  34. 16
      tools/dockerfile/test/cxx_debian11_openssl102_x64/Dockerfile
  35. 16
      tools/dockerfile/test/cxx_debian11_x64/Dockerfile
  36. 16
      tools/dockerfile/test/cxx_debian11_x86/Dockerfile
  37. 98
      tools/dockerfile/test/cxx_debian9_x86/Dockerfile
  38. 14
      tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile
  39. 15
      tools/dockerfile/test/python_alpine_x64/Dockerfile
  40. 77
      tools/dockerfile/test/python_debian11_default_x64/Dockerfile
  41. 72
      tools/dockerfile/test/python_stretch_3.5_x64/Dockerfile
  42. 91
      tools/dockerfile/test/python_stretch_3.6_x64/Dockerfile
  43. 75
      tools/dockerfile/test/python_stretch_3.7_x64/Dockerfile
  44. 91
      tools/dockerfile/test/python_stretch_3.8_x64/Dockerfile
  45. 25
      tools/run_tests/run_tests.py
  46. 4
      tools/run_tests/run_tests_matrix.py

@ -0,0 +1,13 @@
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz ${'\\'}
&& tar -zxf ccache.tar.gz ${'\\'}
&& cd ccache-4.5.1 ${'\\'}
&& mkdir build && cd build ${'\\'}
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. ${'\\'}
&& make -j4 && make install ${'\\'}
&& cd ../.. ${'\\'}
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -0,0 +1,5 @@
#=================
# Install cmake using the install script.
RUN curl -sSL -o cmake-linux.sh https://github.com/Kitware/CMake/releases/download/v3.16.1/cmake-3.16.1-Linux-x86_64.sh ${'\\'}
&& sh cmake-linux.sh -- --skip-license --prefix=/usr ${'\\'}
&& rm cmake-linux.sh

@ -0,0 +1,20 @@
#=================
# Compile CPython 3.10.2 from source
RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && ${'\\'}
wget -q https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz && ${'\\'}
tar xzvf Python-3.10.2.tgz && ${'\\'}
cd Python-3.10.2 && ${'\\'}
./configure && ${'\\'}
make -j4 && ${'\\'}
make install
RUN cd /tmp && ${'\\'}
echo "67c92270be6701f4a6fed57c4530139b Python-3.10.2.tgz" > checksum.md5 && ${'\\'}
md5sum -c checksum.md5
RUN python3.10 -m ensurepip && ${'\\'}
python3.10 -m pip install coverage

@ -9,6 +9,7 @@ RUN cd /tmp && ${'\\'}
tar xzvf Python-3.6.9.tgz && ${'\\'} tar xzvf Python-3.6.9.tgz && ${'\\'}
cd Python-3.6.9 && ${'\\'} cd Python-3.6.9 && ${'\\'}
./configure && ${'\\'} ./configure && ${'\\'}
make -j4 && ${'\\'}
make install make install
RUN cd /tmp && ${'\\'} RUN cd /tmp && ${'\\'}

@ -0,0 +1,20 @@
#=================
# Compile CPython 3.7.12 from source
RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && ${'\\'}
wget -q https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz && ${'\\'}
tar xzvf Python-3.7.12.tgz && ${'\\'}
cd Python-3.7.12 && ${'\\'}
./configure && ${'\\'}
make -j4 && ${'\\'}
make install
RUN cd /tmp && ${'\\'}
echo "6fe83678c085a7735a943cf1e4d41c14 Python-3.7.12.tgz" > checksum.md5 && ${'\\'}
md5sum -c checksum.md5
RUN python3.7 -m ensurepip && ${'\\'}
python3.7 -m pip install coverage

@ -9,6 +9,7 @@ RUN cd /tmp && ${'\\'}
tar xzvf Python-3.8.0b4.tgz && ${'\\'} tar xzvf Python-3.8.0b4.tgz && ${'\\'}
cd Python-3.8.0b4 && ${'\\'} cd Python-3.8.0b4 && ${'\\'}
./configure && ${'\\'} ./configure && ${'\\'}
make -j4 && ${'\\'}
make install make install
RUN cd /tmp && ${'\\'} RUN cd /tmp && ${'\\'}

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
<%include file="../../python_bullseye_base.include"/> <%include file="../../python_debian11_base.include"/>
RUN apt-get update && apt-get install -y python3 python3-all-dev python3-pip RUN apt-get update && apt-get install -y python3 python3-all-dev python3-pip
RUN ln -s $(which python3) /usr/bin/python RUN ln -s $(which python3) /usr/bin/python

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
<%include file="../../python_bullseye_base.include"/> <%include file="../../python_debian11_base.include"/>
RUN apt-get update && apt-get install -y python3 python3-pip python3-all-dev RUN apt-get update && apt-get install -y python3 python3-pip python3-all-dev
RUN ln -s $(which python3) /usr/bin/python RUN ln -s $(which python3) /usr/bin/python

@ -1,7 +0,0 @@
FROM debian:stretch
<%include file="./apt_get_basic.include"/>
# Add Debian 'buster' repository, we will need it for installing newer versions of python
RUN echo 'deb http://ftp.de.debian.org/debian buster main' >> /etc/apt/sources.list
RUN echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
<%include file="./run_tests_addons.include"/>

@ -51,6 +51,7 @@
RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Define the default command. # Define the default command.

@ -20,6 +20,7 @@
<%include file="../../run_tests_python_deps.include"/> <%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_deps.include"/> <%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/> <%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Define the default command. # Define the default command.

@ -20,6 +20,7 @@
<%include file="../../run_tests_python_deps.include"/> <%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_deps.include"/> <%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/> <%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Define the default command. # Define the default command.

@ -14,13 +14,14 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM debian:10 FROM debian:11
RUN apt-get --allow-releaseinfo-change update RUN apt-get --allow-releaseinfo-change update
<%include file="../../apt_get_basic.include"/> <%include file="../../apt_get_basic.include"/>
<%include file="../../run_tests_python_deps.include"/> <%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_deps.include"/> <%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/> <%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Install openssl 1.0.2 from source # Install openssl 1.0.2 from source

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM debian:10 FROM debian:11
RUN apt-get --allow-releaseinfo-change update RUN apt-get --allow-releaseinfo-change update
@ -22,6 +22,7 @@
<%include file="../../run_tests_python_deps.include"/> <%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_deps.include"/> <%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/> <%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Define the default command. # Define the default command.

@ -14,12 +14,13 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM i386/debian:9 FROM i386/debian:11
<%include file="../../apt_get_basic.include"/> <%include file="../../apt_get_basic.include"/>
<%include file="../../run_tests_python_deps.include"/> <%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_deps.include"/> <%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/> <%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Define the default command. # Define the default command.

@ -1,26 +0,0 @@
%YAML 1.2
--- |
# Copyright 2021 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:9
<%include file="../../apt_get_basic.include"/>
<%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_deps.include"/>
<%include file="../../cmake.include"/>
<%include file="../../run_tests_addons.include"/>
# Define the default command.
CMD ["bash"]

@ -19,6 +19,7 @@
RUN apt-get update && apt-get install -y curl git time wget zip && apt-get clean RUN apt-get update && apt-get install -y curl git time wget zip && apt-get clean
<%include file="../../run_tests_python_deps.include"/> <%include file="../../run_tests_python_deps.include"/>
<%include file="../../cmake.include"/> <%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/> <%include file="../../run_tests_addons.include"/>
# Define the default command. # Define the default command.

@ -47,3 +47,5 @@
RUN python3 -m pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 six==1.16.0 RUN python3 -m pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 six==1.16.0
<%include file="../../gcp_api_libraries.include"/> <%include file="../../gcp_api_libraries.include"/>
<%include file="../../ccache.include"/>

@ -14,17 +14,19 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
<%include file="../../python_stretch_base.include"/> <%include file="../../python_debian11_base.include"/>
<%include file="../../compile_python_36.include"/> <%include file="../../compile_python_36.include"/>
<%include file="../../compile_python_37.include"/>
<%include file="../../compile_python_38.include"/> <%include file="../../compile_python_38.include"/>
<%include file="../../compile_python_310.include"/>
RUN apt-get update && apt-get install -y python3.5 python3.5-dev # 3.9 is the default python3 version on debian11
RUN curl https://bootstrap.pypa.io/pip/3.5/get-pip.py | python3.5 RUN apt-get update && apt-get install -y python3.9 python3.9-dev python3-pip
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
# for Python test coverage reporting # for Python test coverage reporting
RUN python3.7 -m pip install coverage RUN python3.9 -m pip install coverage
<%include file="../../gcp_api_libraries.include"/> <%include file="../../gcp_api_libraries.include"/>
<%include file="../../cmake.include"/>
<%include file="../../ccache.include"/>

@ -1,22 +0,0 @@
%YAML 1.2
--- |
# Copyright 2018 The 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.
<%include file="../../python_stretch_base.include"/>
RUN apt-get update && apt-get install -y python3.5 python3-all-dev
RUN curl https://bootstrap.pypa.io/pip/3.5/get-pip.py | python3.5
<%include file="../../gcp_api_libraries.include"/>

@ -1,22 +0,0 @@
%YAML 1.2
--- |
# Copyright 2018 The 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.
<%include file="../../python_stretch_base.include"/>
<%include file="../../compile_python_36.include"/>
RUN ln -s $(which python3.6) /usr/bin/python3
<%include file="../../gcp_api_libraries.include"/>

@ -1,25 +0,0 @@
%YAML 1.2
--- |
# Copyright 2018 The 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.
<%include file="../../python_stretch_base.include"/>
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
# for Python test coverage reporting
RUN python3.7 -m pip install coverage
<%include file="../../gcp_api_libraries.include"/>

@ -1,23 +0,0 @@
%YAML 1.2
--- |
# Copyright 2019 The 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.
<%include file="../../python_stretch_base.include"/>
<%include file="../../compile_python_38.include"/>
RUN ln -s $(which python3.8) /usr/bin/python3
<%include file="../../gcp_api_libraries.include"/>

@ -14,20 +14,32 @@
# Docker file for building gRPC manylinux Python artifacts. # Docker file for building gRPC manylinux Python artifacts.
# python2.7 was removed from the manylinux2010 image. FROM quay.io/pypa/manylinux2010_x86_64:2022-01-22-72ab18b
# Use the latest version that still has python2.7
# TODO(jtattermusch): Stop building python2.7 wheels. # manylinux_2_12 is the preferred alias of manylinux2010
FROM quay.io/pypa/manylinux2010_x86_64:2021-02-06-3d322a5 ENV AUDITWHEEL_PLAT manylinux_2_12_$AUDITWHEEL_ARCH
# TODO(jtattermusch): revisit which of the deps are really required # TODO(jtattermusch): revisit which of the deps are really required
RUN yum update -y && yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc RUN yum update -y && yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc
################################### ###################################
# Install Python build requirements # Install Python build requirements
RUN /opt/python/cp27-cp27m/bin/pip install --upgrade cython
RUN /opt/python/cp27-cp27mu/bin/pip install --upgrade cython
RUN /opt/python/cp35-cp35m/bin/pip install --upgrade cython
RUN /opt/python/cp36-cp36m/bin/pip install --upgrade cython RUN /opt/python/cp36-cp36m/bin/pip install --upgrade cython
RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython
RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython
RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython
RUN /opt/python/cp310-cp310/bin/pip install --upgrade cython
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -14,20 +14,32 @@
# Docker file for building gRPC manylinux Python artifacts. # Docker file for building gRPC manylinux Python artifacts.
# python2.7 was removed from the manylinux2010 image. FROM quay.io/pypa/manylinux2010_i686:2022-01-22-72ab18b
# Use the latest version that still has python2.7
# TODO(jtattermusch): Stop building python2.7 wheels. # manylinux_2_12 is the preferred alias of manylinux2010
FROM quay.io/pypa/manylinux2010_i686:2021-02-06-3d322a5 ENV AUDITWHEEL_PLAT manylinux_2_12_$AUDITWHEEL_ARCH
# TODO(jtattermusch): revisit which of the deps are really required # TODO(jtattermusch): revisit which of the deps are really required
RUN yum update -y && yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc RUN yum update -y && yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc
################################### ###################################
# Install Python build requirements # Install Python build requirements
RUN /opt/python/cp27-cp27m/bin/pip install --upgrade cython
RUN /opt/python/cp27-cp27mu/bin/pip install --upgrade cython
RUN /opt/python/cp35-cp35m/bin/pip install --upgrade cython
RUN /opt/python/cp36-cp36m/bin/pip install --upgrade cython RUN /opt/python/cp36-cp36m/bin/pip install --upgrade cython
RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython
RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython
RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython
RUN /opt/python/cp310-cp310/bin/pip install --upgrade cython
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -29,3 +29,17 @@ RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython
RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython
RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython
RUN /opt/python/cp310-cp310/bin/pip install --upgrade cython RUN /opt/python/cp310-cp310/bin/pip install --upgrade cython
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -29,3 +29,17 @@ RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython
RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython
RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython
RUN /opt/python/cp310-cp310/bin/pip install --upgrade cython RUN /opt/python/cp310-cp310/bin/pip install --upgrade cython
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -57,6 +57,7 @@ RUN cd /tmp && \
tar xzvf Python-3.6.9.tgz && \ tar xzvf Python-3.6.9.tgz && \
cd Python-3.6.9 && \ cd Python-3.6.9 && \
./configure && \ ./configure && \
make -j4 && \
make install make install
RUN cd /tmp && \ RUN cd /tmp && \

@ -57,6 +57,7 @@ RUN cd /tmp && \
tar xzvf Python-3.6.9.tgz && \ tar xzvf Python-3.6.9.tgz && \
cd Python-3.6.9 && \ cd Python-3.6.9 && \
./configure && \ ./configure && \
make -j4 && \
make install make install
RUN cd /tmp && \ RUN cd /tmp && \

@ -49,6 +49,20 @@ RUN python3 -m pip install --upgrade google-auth==1.24.0 google-api-python-clien
RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -50,6 +50,20 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
RUN apt-get update && apt-get install -y cmake && apt-get clean RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -50,6 +50,20 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
RUN apt-get update && apt-get install -y cmake && apt-get clean RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM debian:10 FROM debian:11
RUN apt-get --allow-releaseinfo-change update RUN apt-get --allow-releaseinfo-change update
#================= #=================
@ -91,6 +91,20 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
RUN apt-get update && apt-get install -y cmake && apt-get clean RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM debian:10 FROM debian:11
RUN apt-get --allow-releaseinfo-change update RUN apt-get --allow-releaseinfo-change update
@ -92,6 +92,20 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
RUN apt-get update && apt-get install -y cmake && apt-get clean RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM debian:9 FROM i386/debian:11
#================= #=================
# Basic C core dependencies # Basic C core dependencies
@ -90,6 +90,20 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
RUN apt-get update && apt-get install -y cmake && apt-get clean RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -1,98 +0,0 @@
# Copyright 2021 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 i386/debian:9
#=================
# Basic C core dependencies
# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md
RUN apt-get update && apt-get install -y \
build-essential \
autoconf \
libtool \
pkg-config \
&& apt-get clean
# GCC
RUN apt-get update && apt-get install -y \
gcc \
gcc-multilib \
g++ \
g++-multilib \
&& apt-get clean
# libc6
RUN apt-get update && apt-get install -y \
libc6 \
libc6-dbg \
libc6-dev \
&& apt-get clean
# Tools
RUN apt-get update && apt-get install -y \
bzip2 \
curl \
dnsutils \
git \
lcov \
make \
strace \
time \
unzip \
wget \
zip \
&& apt-get clean
#====================
# run_tests.py python dependencies
# Basic python dependencies to be able to run tools/run_tests python scripts
# These dependencies are not sufficient to build gRPC Python, gRPC Python
# deps are defined elsewhere (e.g. python_deps.include)
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-setuptools \
python3-yaml \
&& apt-get clean
# use pinned version of pip to avoid sudden breakages
RUN python3 -m pip install --upgrade pip==19.3.1
# TODO(jtattermusch): currently six is needed for tools/run_tests scripts
# but since our python2 usage is deprecated, we should get rid of it.
RUN python3 -m pip install six==1.16.0
# Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0
#=================
# C++ dependencies
RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
#=================
# Install cmake
# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement.
RUN apt-get update && apt-get install -y cmake && apt-get clean
RUN mkdir /var/local/jenkins
# Define the default command.
CMD ["bash"]

@ -46,6 +46,20 @@ RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-clien
RUN apt-get update && apt-get install -y cmake && apt-get clean RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins

@ -29,3 +29,18 @@ RUN python3 -m pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 s
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts) # These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0 RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM debian:stretch FROM debian:bullseye
#================= #=================
# Basic C core dependencies # Basic C core dependencies
@ -55,9 +55,6 @@ RUN apt-get update && apt-get install -y \
zip \ zip \
&& apt-get clean && apt-get clean
# Add Debian 'buster' repository, we will need it for installing newer versions of python
RUN echo 'deb http://ftp.de.debian.org/debian buster main' >> /etc/apt/sources.list
RUN echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
RUN mkdir /var/local/jenkins RUN mkdir /var/local/jenkins
@ -73,6 +70,7 @@ RUN cd /tmp && \
tar xzvf Python-3.6.9.tgz && \ tar xzvf Python-3.6.9.tgz && \
cd Python-3.6.9 && \ cd Python-3.6.9 && \
./configure && \ ./configure && \
make -j4 && \
make install make install
RUN cd /tmp && \ RUN cd /tmp && \
@ -82,6 +80,27 @@ RUN cd /tmp && \
RUN python3.6 -m ensurepip && \ RUN python3.6 -m ensurepip && \
python3.6 -m pip install coverage python3.6 -m pip install coverage
#=================
# Compile CPython 3.7.12 from source
RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
wget -q https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz && \
tar xzvf Python-3.7.12.tgz && \
cd Python-3.7.12 && \
./configure && \
make -j4 && \
make install
RUN cd /tmp && \
echo "6fe83678c085a7735a943cf1e4d41c14 Python-3.7.12.tgz" > checksum.md5 && \
md5sum -c checksum.md5
RUN python3.7 -m ensurepip && \
python3.7 -m pip install coverage
#================= #=================
# Compile CPython 3.8.0b4 from source # Compile CPython 3.8.0b4 from source
@ -93,6 +112,7 @@ RUN cd /tmp && \
tar xzvf Python-3.8.0b4.tgz && \ tar xzvf Python-3.8.0b4.tgz && \
cd Python-3.8.0b4 && \ cd Python-3.8.0b4 && \
./configure && \ ./configure && \
make -j4 && \
make install make install
RUN cd /tmp && \ RUN cd /tmp && \
@ -102,17 +122,56 @@ RUN cd /tmp && \
RUN python3.8 -m ensurepip && \ RUN python3.8 -m ensurepip && \
python3.8 -m pip install coverage python3.8 -m pip install coverage
#=================
# Compile CPython 3.10.2 from source
RUN apt-get update && apt-get install -y python3.5 python3.5-dev RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
RUN curl https://bootstrap.pypa.io/pip/3.5/get-pip.py | python3.5 RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
wget -q https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz && \
tar xzvf Python-3.10.2.tgz && \
cd Python-3.10.2 && \
./configure && \
make -j4 && \
make install
RUN cd /tmp && \
echo "67c92270be6701f4a6fed57c4530139b Python-3.10.2.tgz" > checksum.md5 && \
md5sum -c checksum.md5
RUN python3.10 -m ensurepip && \
python3.10 -m pip install coverage
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 # 3.9 is the default python3 version on debian11
RUN apt-get update && apt-get install -y python3.9 python3.9-dev python3-pip
# for Python test coverage reporting # for Python test coverage reporting
RUN python3.7 -m pip install coverage RUN python3.9 -m pip install coverage
# Google Cloud Platform API libraries # Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts) # These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0 RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0
#=================
# Install cmake
# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement.
RUN apt-get update && apt-get install -y cmake && apt-get clean
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.5.1/ccache-4.5.1.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.5.1 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.5.1 ccache.tar.gz

@ -1,72 +0,0 @@
# Copyright 2018 The 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:stretch
#=================
# Basic C core dependencies
# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md
RUN apt-get update && apt-get install -y \
build-essential \
autoconf \
libtool \
pkg-config \
&& apt-get clean
# GCC
RUN apt-get update && apt-get install -y \
gcc \
gcc-multilib \
g++ \
g++-multilib \
&& apt-get clean
# libc6
RUN apt-get update && apt-get install -y \
libc6 \
libc6-dbg \
libc6-dev \
&& apt-get clean
# Tools
RUN apt-get update && apt-get install -y \
bzip2 \
curl \
dnsutils \
git \
lcov \
make \
strace \
time \
unzip \
wget \
zip \
&& apt-get clean
# Add Debian 'buster' repository, we will need it for installing newer versions of python
RUN echo 'deb http://ftp.de.debian.org/debian buster main' >> /etc/apt/sources.list
RUN echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
RUN mkdir /var/local/jenkins
RUN apt-get update && apt-get install -y python3.5 python3-all-dev
RUN curl https://bootstrap.pypa.io/pip/3.5/get-pip.py | python3.5
# Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0

@ -1,91 +0,0 @@
# Copyright 2018 The 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:stretch
#=================
# Basic C core dependencies
# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md
RUN apt-get update && apt-get install -y \
build-essential \
autoconf \
libtool \
pkg-config \
&& apt-get clean
# GCC
RUN apt-get update && apt-get install -y \
gcc \
gcc-multilib \
g++ \
g++-multilib \
&& apt-get clean
# libc6
RUN apt-get update && apt-get install -y \
libc6 \
libc6-dbg \
libc6-dev \
&& apt-get clean
# Tools
RUN apt-get update && apt-get install -y \
bzip2 \
curl \
dnsutils \
git \
lcov \
make \
strace \
time \
unzip \
wget \
zip \
&& apt-get clean
# Add Debian 'buster' repository, we will need it for installing newer versions of python
RUN echo 'deb http://ftp.de.debian.org/debian buster main' >> /etc/apt/sources.list
RUN echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
RUN mkdir /var/local/jenkins
#=================
# Compile CPython 3.6.9 from source
RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
wget -q https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz && \
tar xzvf Python-3.6.9.tgz && \
cd Python-3.6.9 && \
./configure && \
make install
RUN cd /tmp && \
echo "ff7cdaef4846c89c1ec0d7b709bbd54d Python-3.6.9.tgz" > checksum.md5 && \
md5sum -c checksum.md5
RUN python3.6 -m ensurepip && \
python3.6 -m pip install coverage
RUN ln -s $(which python3.6) /usr/bin/python3
# Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0

@ -1,75 +0,0 @@
# Copyright 2018 The 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:stretch
#=================
# Basic C core dependencies
# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md
RUN apt-get update && apt-get install -y \
build-essential \
autoconf \
libtool \
pkg-config \
&& apt-get clean
# GCC
RUN apt-get update && apt-get install -y \
gcc \
gcc-multilib \
g++ \
g++-multilib \
&& apt-get clean
# libc6
RUN apt-get update && apt-get install -y \
libc6 \
libc6-dbg \
libc6-dev \
&& apt-get clean
# Tools
RUN apt-get update && apt-get install -y \
bzip2 \
curl \
dnsutils \
git \
lcov \
make \
strace \
time \
unzip \
wget \
zip \
&& apt-get clean
# Add Debian 'buster' repository, we will need it for installing newer versions of python
RUN echo 'deb http://ftp.de.debian.org/debian buster main' >> /etc/apt/sources.list
RUN echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
RUN mkdir /var/local/jenkins
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
# for Python test coverage reporting
RUN python3.7 -m pip install coverage
# Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0

@ -1,91 +0,0 @@
# Copyright 2019 The 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:stretch
#=================
# Basic C core dependencies
# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md
RUN apt-get update && apt-get install -y \
build-essential \
autoconf \
libtool \
pkg-config \
&& apt-get clean
# GCC
RUN apt-get update && apt-get install -y \
gcc \
gcc-multilib \
g++ \
g++-multilib \
&& apt-get clean
# libc6
RUN apt-get update && apt-get install -y \
libc6 \
libc6-dbg \
libc6-dev \
&& apt-get clean
# Tools
RUN apt-get update && apt-get install -y \
bzip2 \
curl \
dnsutils \
git \
lcov \
make \
strace \
time \
unzip \
wget \
zip \
&& apt-get clean
# Add Debian 'buster' repository, we will need it for installing newer versions of python
RUN echo 'deb http://ftp.de.debian.org/debian buster main' >> /etc/apt/sources.list
RUN echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
RUN mkdir /var/local/jenkins
#=================
# Compile CPython 3.8.0b4 from source
RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev && apt-get clean
RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean
RUN cd /tmp && \
wget -q https://www.python.org/ftp/python/3.8.0/Python-3.8.0b4.tgz && \
tar xzvf Python-3.8.0b4.tgz && \
cd Python-3.8.0b4 && \
./configure && \
make install
RUN cd /tmp && \
echo "b8f4f897df967014ddb42033b90c3058 Python-3.8.0b4.tgz" > checksum.md5 && \
md5sum -c checksum.md5
RUN python3.8 -m ensurepip && \
python3.8 -m pip install coverage
RUN ln -s $(which python3.8) /usr/bin/python3
# Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0

@ -459,13 +459,13 @@ class CLanguage(object):
_check_compiler(compiler, ['default', 'cmake']) _check_compiler(compiler, ['default', 'cmake'])
if compiler == 'default' or compiler == 'cmake': if compiler == 'default' or compiler == 'cmake':
return ('debian9', []) return ('debian11', [])
elif compiler == 'gcc4.9': elif compiler == 'gcc4.9':
return ('gcc_4.9', []) return ('gcc_4.9', [])
elif compiler == 'gcc8.3': elif compiler == 'gcc10.2':
return ('debian10', []) return ('debian11', [])
elif compiler == 'gcc8.3_openssl102': elif compiler == 'gcc10.2_openssl102':
return ('debian10_openssl102', [ return ('debian11_openssl102', [
"-DgRPC_SSL_PROVIDER=package", "-DgRPC_SSL_PROVIDER=package",
]) ])
elif compiler == 'gcc11': elif compiler == 'gcc11':
@ -678,16 +678,15 @@ class PythonLanguage(object):
def dockerfile_dir(self): def dockerfile_dir(self):
return 'tools/dockerfile/test/python_%s_%s' % ( return 'tools/dockerfile/test/python_%s_%s' % (
self._python_manager_name(), _docker_arch_suffix(self.args.arch)) self._python_docker_distro_name(),
_docker_arch_suffix(self.args.arch))
def _python_manager_name(self): def _python_docker_distro_name(self):
"""Choose the docker image to use based on python version.""" """Choose the docker image to use based on python version."""
if self.args.compiler in ['python3.6', 'python3.7', 'python3.8']: if self.args.compiler == 'python_alpine':
return 'stretch_' + self.args.compiler[len('python'):]
elif self.args.compiler == 'python_alpine':
return 'alpine' return 'alpine'
else: else:
return 'stretch_default' return 'debian11_default'
def _get_pythons(self, args): def _get_pythons(self, args):
"""Get python runtimes to test with, based on current platform, architecture, compiler etc.""" """Get python runtimes to test with, based on current platform, architecture, compiler etc."""
@ -1383,8 +1382,8 @@ argp.add_argument(
choices=[ choices=[
'default', 'default',
'gcc4.9', 'gcc4.9',
'gcc8.3', 'gcc10.2',
'gcc8.3_openssl102', 'gcc10.2_openssl102',
'gcc11', 'gcc11',
'gcc_musl', 'gcc_musl',
'clang4', 'clang4',

@ -266,8 +266,8 @@ def _create_portability_test_jobs(extra_args=[],
# portability C and C++ on x64 # portability C and C++ on x64
for compiler in [ for compiler in [
'gcc4.9', 'gcc8.3', 'gcc8.3_openssl102', 'gcc11', 'gcc_musl', 'gcc4.9', 'gcc10.2_openssl102', 'gcc11', 'gcc_musl', 'clang4',
'clang4', 'clang13' 'clang13'
]: ]:
test_jobs += _generate_jobs(languages=['c', 'c++'], test_jobs += _generate_jobs(languages=['c', 'c++'],
configs=['dbg'], configs=['dbg'],

Loading…
Cancel
Save