diff options
Diffstat (limited to 'tools/dockerfile/test')
17 files changed, 185 insertions, 39 deletions
diff --git a/tools/dockerfile/test/bazel.current_version b/tools/dockerfile/test/bazel.current_version index 93a0886478..972682e152 100644 --- a/tools/dockerfile/test/bazel.current_version +++ b/tools/dockerfile/test/bazel.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/bazel:d64f53cefe4fe5908e00130a7a0dbe6253d9f0b8@sha256:d3291d3129469bd4bdd58b5dd81eb6c5668548a4d6e6c8e952fb372d1874b078
\ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/bazel:cacad91746cd598d8756de89b912be291de1f019@sha256:32bde2dcb2087f2a32afab59e4dfedf7e8c76a52c69881f63a239d311f0e5ecf
\ No newline at end of file diff --git a/tools/dockerfile/test/bazel/Dockerfile b/tools/dockerfile/test/bazel/Dockerfile index ab02711451..c52f8313cb 100644 --- a/tools/dockerfile/test/bazel/Dockerfile +++ b/tools/dockerfile/test/bazel/Dockerfile @@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \ # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 6.3.2 +ENV BAZEL_VERSION 6.4.0 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 @@ -65,6 +65,17 @@ RUN BAZEL_ARCH_SUFFIX="$(uname -m | sed s/aarch64/arm64/)" \ RUN git config --global --add safe.directory '*' RUN git config --global protocol.file.allow always +#================= +# Setup git to access working directory across docker boundary. +# This avoids the "fatal: detected dubious ownership in repository XYZ" +# git error. Using "--system" makes the setting work +# for all users or even current user is not properly defined +# (which can happen e.g. inside execution environment +# of a bazel action) + +RUN git config --system --add safe.directory '*' +RUN git config --system protocol.file.allow always + RUN apt-get install -y gdb diff --git a/tools/dockerfile/test/bazel_arm64.current_version b/tools/dockerfile/test/bazel_arm64.current_version index 242040883d..71008d44e6 100644 --- a/tools/dockerfile/test/bazel_arm64.current_version +++ b/tools/dockerfile/test/bazel_arm64.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/bazel_arm64:b80154c9d14839d4e387155401c5204f2cc09262@sha256:1b7200c85ba8bc10529e1867a27ee81ad303ec8c8efec8bbc5863b4ee8ac6d03
\ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/bazel_arm64:2638335cbe0cbd8f77c54affdf0e4b36f7741785@sha256:3b087387c44dee405c1b80d6ff50994e6d8e90a4ef67cc94b4291f1a29c0ef41
\ No newline at end of file diff --git a/tools/dockerfile/test/bazel_arm64/Dockerfile b/tools/dockerfile/test/bazel_arm64/Dockerfile index 104994c570..afc341b6ad 100644 --- a/tools/dockerfile/test/bazel_arm64/Dockerfile +++ b/tools/dockerfile/test/bazel_arm64/Dockerfile @@ -97,7 +97,7 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 6.3.2 +ENV BAZEL_VERSION 6.4.0 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 diff --git a/tools/dockerfile/test/binder_transport_apk.current_version b/tools/dockerfile/test/binder_transport_apk.current_version index caf0273c2c..439b81ec9d 100644 --- a/tools/dockerfile/test/binder_transport_apk.current_version +++ b/tools/dockerfile/test/binder_transport_apk.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/binder_transport_apk:86b356231e6878000efa10a7d471ab7b332a92de@sha256:38c1da5544c717ef0e3d3492833b0fd1ce5c70fbe71eea8a9bfb0ab0b1217f1b
\ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/binder_transport_apk:783671f597502a2dc3ebf190d52d55be70836a33@sha256:bf60a187cd2ce1abe8b4f32ae6479040a72ca6aa789cd5ab509f60ceb37a41f9
\ No newline at end of file diff --git a/tools/dockerfile/test/binder_transport_apk/Dockerfile b/tools/dockerfile/test/binder_transport_apk/Dockerfile index d82114053d..c0644d3285 100644 --- a/tools/dockerfile/test/binder_transport_apk/Dockerfile +++ b/tools/dockerfile/test/binder_transport_apk/Dockerfile @@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \ # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 6.3.2 +ENV BAZEL_VERSION 6.4.0 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 diff --git a/tools/dockerfile/test/cxx_clang_15_x64.current_version b/tools/dockerfile/test/cxx_clang_15_x64.current_version deleted file mode 100644 index b8e66d280d..0000000000 --- a/tools/dockerfile/test/cxx_clang_15_x64.current_version +++ /dev/null @@ -1 +0,0 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_15_x64:3f2c40d2de5d4d986d17381920927a9d53760e19@sha256:c41629b44bfcdbc644ac90c3de4ca9f4d5a4fbc7daea8be2c5d6e4942acf6743
\ No newline at end of file diff --git a/tools/dockerfile/test/cxx_clang_17_x64.current_version b/tools/dockerfile/test/cxx_clang_17_x64.current_version new file mode 100644 index 0000000000..bf3e6fdb51 --- /dev/null +++ b/tools/dockerfile/test/cxx_clang_17_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_17_x64:50db090958b219aa79e86c6b842f76269ca89db7@sha256:05c948d794b7b4cf1b3c45106a1332b80808c7cd7f56aeb9a8ece63641f3d41d
\ No newline at end of file diff --git a/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile b/tools/dockerfile/test/cxx_clang_17_x64/Dockerfile index a4143f48dd..3f6b2bdb2d 100644 --- a/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile +++ b/tools/dockerfile/test/cxx_clang_17_x64/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM silkeh/clang:15-bullseye +FROM silkeh/clang:17-bullseye RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean #================= diff --git a/tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version b/tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version new file mode 100644 index 0000000000..ee4ef83c35 --- /dev/null +++ b/tools/dockerfile/test/cxx_debian11_openssl111_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_openssl111_x64:d32295b6e0b45141a49a47608734f1e057a1ec74@sha256:63f2cd5ae453aa2a850fc59b9ec8e8a865e63d9f99a2b796de65669f3bf21275
\ No newline at end of file diff --git a/tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile b/tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile new file mode 100644 index 0000000000..19822c8224 --- /dev/null +++ b/tools/dockerfile/test/cxx_debian11_openssl111_x64/Dockerfile @@ -0,0 +1,125 @@ +# Copyright 2023 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:11 + +#================= +# 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 \ + g++ \ + && 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 + +#================= +# Setup git to access working directory across docker boundary. +# This avoids the "fatal: detected dubious ownership in repository XYZ" +# git error. + +RUN git config --global --add safe.directory '*' +RUN git config --global protocol.file.allow always + + +#==================== +# 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 + + +# Some cxx tests depend on the twisted package +RUN python3 -m pip install twisted + +#================= +# 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 + +#================= +# 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.7.5/ccache-4.7.5.tar.gz \ + && tar -zxf ccache.tar.gz \ + && cd ccache-4.7.5 \ + && 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.7.5 ccache.tar.gz + + +RUN mkdir /var/local/jenkins + + +# Install openssl 1.1.1 by installing libssl-dev on debian:11 +RUN apt-get update && apt-get install -y build-essential zlib1g-dev libssl-dev + +# Define the default command. +CMD ["bash"] diff --git a/tools/dockerfile/test/python_debian11_default_arm64.current_version b/tools/dockerfile/test/python_debian11_default_arm64.current_version index ab5a5bae27..2bd50d8317 100644 --- a/tools/dockerfile/test/python_debian11_default_arm64.current_version +++ b/tools/dockerfile/test/python_debian11_default_arm64.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64:4fbecbb42c07bce5d982e3808be6981549a5126d@sha256:e1fd0a85aed633d817ac086f3c588c6343d316b7d41a4dd62a8ecfbb70358687
\ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64:55eb2e98cc7ff914777976a5482fee5fa62e9cbe@sha256:fccca33a655c7aa89dd7ebd9492cbcc1f636bd2a004cd939d1982cfce3d68326
\ No newline at end of file diff --git a/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile b/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile index 147f2ff5ec..024acfe7e7 100644 --- a/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile +++ b/tools/dockerfile/test/python_debian11_default_arm64/Dockerfile @@ -66,6 +66,10 @@ RUN git config --global protocol.file.allow always RUN mkdir /var/local/jenkins +# Python test coverage requires libsqlite3, and it have +# to be installed before Python. +RUN apt-get update && apt-get install -y libsqlite3-dev + # 3.9 is the default python3 version on debian11 RUN apt-get update && apt-get install -y python3.9 python3.9-dev python3-pip diff --git a/tools/dockerfile/test/python_debian11_default_x64.current_version b/tools/dockerfile/test/python_debian11_default_x64.current_version index becc999898..a318a5fcbc 100644 --- a/tools/dockerfile/test/python_debian11_default_x64.current_version +++ b/tools/dockerfile/test/python_debian11_default_x64.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64:a6300ecdbf62f0873270a97068c013e4ffc0b32d@sha256:8f22ba10b93b14c13ceb296cbbd41dba04947b457efc229412b43280ad6a4adc
\ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64:05951fbd0e77e8ba072d270ad08f0d4b6ac00841@sha256:a956ff4bfbfa4fc6a00c7113f2dada7ce8cf4011f236f07197732981875d6519
\ No newline at end of file diff --git a/tools/dockerfile/test/python_debian11_default_x64/Dockerfile b/tools/dockerfile/test/python_debian11_default_x64/Dockerfile index b05110c364..2ba17722bc 100644 --- a/tools/dockerfile/test/python_debian11_default_x64/Dockerfile +++ b/tools/dockerfile/test/python_debian11_default_x64/Dockerfile @@ -67,30 +67,9 @@ RUN mkdir /var/local/jenkins #================= -# Compile CPython 3.6.15 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.15/Python-3.6.15.tgz && \ - tar xzvf Python-3.6.15.tgz && \ - cd Python-3.6.15 && \ - ./configure && \ - make -j4 && \ - make install - -RUN cd /tmp && \ - echo "f9e6f91c754a604f4fc6f6c7683723fb Python-3.6.15.tgz" > checksum.md5 && \ - md5sum -c checksum.md5 - -RUN python3.6 -m ensurepip && \ - python3.6 -m pip install coverage - -#================= # Compile CPython 3.7.13 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 zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean RUN cd /tmp && \ @@ -111,7 +90,7 @@ RUN python3.7 -m ensurepip && \ #================= # Compile CPython 3.8.13 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 zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean RUN cd /tmp && \ @@ -132,7 +111,7 @@ RUN python3.8 -m ensurepip && \ #================= # Compile CPython 3.10.3 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 zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean RUN cd /tmp && \ @@ -153,7 +132,7 @@ RUN python3.10 -m ensurepip && \ #================= # Compile CPython 3.11.4 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 zlib1g-dev libssl-dev libsqlite3-dev && apt-get clean RUN apt-get update && apt-get install -y jq build-essential libffi-dev && apt-get clean RUN cd /tmp && \ @@ -172,6 +151,32 @@ RUN cd /tmp && \ RUN python3.11 -m ensurepip && \ python3.11 -m pip install coverage +#================= +# Compile CPython 3.12.0 from source + +RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libsqlite3-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.12.0/Python-3.12.0.tgz && \ + tar xzvf Python-3.12.0.tgz && \ + cd Python-3.12.0 && \ + ./configure && \ + make -j4 && \ + make install + + +RUN cd /tmp && \ + echo "d6eda3e1399cef5dfde7c4f319b0596c Python-3.12.0.tgz" > checksum.md5 && \ + md5sum -c checksum.md5 + +RUN python3.12 -m ensurepip && \ + python3.12 -m pip install coverage + + +# Python test coverage requires libsqlite3, and it have +# to be installed before Python. +RUN apt-get update && apt-get install -y libsqlite3-dev # 3.9 is the default python3 version on debian11 RUN apt-get update && apt-get install -y python3.9 python3.9-dev python3-pip diff --git a/tools/dockerfile/test/sanity.current_version b/tools/dockerfile/test/sanity.current_version index 5223f72eb9..776c3d349b 100644 --- a/tools/dockerfile/test/sanity.current_version +++ b/tools/dockerfile/test/sanity.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/sanity:33d6fede0d99054071b50e7d0b990f0b55a35f69@sha256:697961d9bc7e8b61598b707fade0b1a5d2e4e8c12e7ed66b07ab35eb619f0722
\ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/sanity:091d8e85bebb7b9f089178ae96435926cdc82fb8@sha256:f1f5ca30491698f793cae75d5989cb53887d159800aef662cf7e6c3df6f86a88
\ No newline at end of file diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile index 26971861f3..e45bdfc002 100644 --- a/tools/dockerfile/test/sanity/Dockerfile +++ b/tools/dockerfile/test/sanity/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM silkeh/clang:15-bullseye +FROM silkeh/clang:16-bullseye #================= # Basic C core dependencies @@ -105,13 +105,13 @@ RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user RUN apt-get update && apt-get install -y jq git # Install prerequisites for the iwyu script -RUN apt-get update && apt-get install -y jq git cmake zlib1g-dev libtinfo-dev libclang-15-dev && apt-get clean +RUN apt-get update && apt-get install -y jq git cmake zlib1g-dev libtinfo-dev libclang-16-dev && apt-get clean #======================== # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 6.3.2 +ENV BAZEL_VERSION 6.4.0 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 |