diff --git a/src/php/bin/build_all_docker_images.sh b/src/php/bin/build_all_docker_images.sh index defc5551f00..77e2df7a024 100755 --- a/src/php/bin/build_all_docker_images.sh +++ b/src/php/bin/build_all_docker_images.sh @@ -17,7 +17,7 @@ set -e cd $(dirname $0)/../../.. ALL_IMAGES=( grpc-ext grpc-src alpine centos7 php-src php-future php-zts - fork-support i386 ) + fork-support i386 php8 ) if [[ "$1" == "--cmds" ]]; then for arg in "${ALL_IMAGES[@]}" diff --git a/src/php/bin/run_all_docker_images.sh b/src/php/bin/run_all_docker_images.sh index 7969c281dd0..a10345816d2 100755 --- a/src/php/bin/run_all_docker_images.sh +++ b/src/php/bin/run_all_docker_images.sh @@ -17,7 +17,7 @@ set -e cd $(dirname $0)/../../.. ALL_IMAGES=( grpc-ext grpc-src alpine centos7 php-src php-future php-zts - fork-support i386 ) + fork-support i386 php8 ) if [[ "$1" == "--cmds" ]]; then for arg in "${ALL_IMAGES[@]}" diff --git a/src/php/docker/php8/Dockerfile b/src/php/docker/php8/Dockerfile new file mode 100644 index 00000000000..47ab8f61474 --- /dev/null +++ b/src/php/docker/php8/Dockerfile @@ -0,0 +1,40 @@ +# Copyright 2020 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 php:8.0.0RC3-cli-buster + +RUN apt-get -qq update && apt-get -qq install -y \ + autoconf automake git libtool pkg-config \ + valgrind wget zlib1g-dev + +ARG MAKEFLAGS=-j8 + + +WORKDIR /tmp + +# install pear +RUN apt-get install expect -y && \ + curl -LO http://pear.php.net/go-pear.phar && \ + expect -c 'spawn php ./go-pear.phar; expect "or Enter to continue:"; send "\n"; expect "Currently used php.ini"; send "\n"; expect eof' && \ + rm go-pear.phar + +WORKDIR /github/grpc + +COPY . . + +RUN pear package && \ + find . -name grpc-*.tgz | xargs -I{} pecl install {} + + +CMD php -d extension=grpc.so -r '$a = new \Grpc\Channel("dummy", []); echo get_class($a)."\n";' diff --git a/templates/src/php/docker/php8/Dockerfile.template b/templates/src/php/docker/php8/Dockerfile.template new file mode 100644 index 00000000000..eb00edb073e --- /dev/null +++ b/templates/src/php/docker/php8/Dockerfile.template @@ -0,0 +1,36 @@ +%YAML 1.2 +--- | + # Copyright 2020 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 php:8.0.0RC3-cli-buster + + RUN apt-get -qq update && apt-get -qq install -y ${'\\'} + autoconf automake git libtool pkg-config ${'\\'} + valgrind wget zlib1g-dev + + ARG MAKEFLAGS=-j8 + + + WORKDIR /tmp + + # install pear + RUN apt-get install expect -y && ${'\\'} + curl -LO http://pear.php.net/go-pear.phar && ${'\\'} + expect -c 'spawn php ./go-pear.phar; expect "or Enter to continue:"; send "\n"; expect "Currently used php.ini"; send "\n"; expect eof' && ${'\\'} + rm go-pear.phar + + <%include file="../pecl_ext_build_src.include" /> + + CMD php -d extension=grpc.so -r '$a = new \Grpc\Channel("dummy", []); echo get_class($a)."\n";'