This directory contains a number of docker images to assist testing the gRPC PECL extension against various different PHP environments.
$ cd grpcTo build all docker images:
$ ./src/php/bin/build_all_docker_images.shOr to only build some selected images
$ ./src/php/bin/build_all_docker_images.sh grpc-ext php-srcOr to only print out individual docker build commands
$ ./src/php/bin/build_all_docker_images.sh --cmdsTo run all tests:
$ ./src/php/bin/run_all_docker_images.shOr to only run some selected images
$ ./src/php/bin/run_all_docker_images.sh grpc-ext php-srcOr to only print out individual docker run commands
$ ./src/php/bin/run_all_docker_images.sh --cmdsThis image builds the full grpc PECL extension (effectively the current
release candidate), installs it against the current PHP version, and runs the
unit tests.
Build grpc-ext docker image:
$ cd grpc
$ docker build -t grpc-php/grpc-ext -f ./src/php/docker/grpc-ext/Dockerfile .Run image:
$ docker run -it --rm grpc-php/grpc-extThis image builds the grpc PECL extension in a 'thin' way, only containing
the gRPC extension source files. The gRPC C Core library is expected to be
installed separately and dynamically linked. The extension is installed
against the current PHP version.
This also allows us to compile our grpc extension with some additional
configure options, like --enable-tests, which allows some additional unit
tests to be run.
Build grpc-src docker image:
$ cd grpc
$ docker build -t grpc-php/grpc-src -f ./src/php/docker/grpc-src/Dockerfile .Run image:
$ docker run -it --rm grpc-php/grpc-srcThis image builds the grpc extension against the current PHP version in an
Alpine-Linux base image.
Build alpine docker image:
$ cd grpc
$ docker build -t grpc-php/alpine -f ./src/php/docker/alpine/Dockerfile .Run image:
$ docker run -it --rm grpc-php/alpineThis image builds the grpc extension against the GCC version in Centos7 base image. The default version of gcc in centos7 is gcc-4.8.5. Run scl enable devtoolset-7 bash command to enable gcc-7.3.1.
Build centos7 docker image:
$ cd grpc
$ docker build -t grpc-gcc7/centos -f ./src/php/docker/centos7/Dockerfile .Run image:
$ docker run -it --rm grpc-gcc7/centosInstead of using a general purpose base docker image provided by PHP, here we
compile PHP itself from
source. This will allow us to change some
configure options, like --enable-debug. Then we proceed to build the full
grpc PECL extension and run the unit tests.
Build php-src docker image:
$ cd grpc
$ docker build -t grpc-php/php-src -f ./src/php/docker/php-src/Dockerfile .Run image:
$ docker run -it --rm grpc-php/php-srcThis image builds the grpc extension against the current PHP version with ZTS
enabled.
Build php-zts docker image:
$ cd grpc
$ docker build -t grpc-php/php-zts -f ./src/php/docker/php-zts/Dockerfile .Run image:
$ docker run -it --rm grpc-php/php-ztsThis image builds the grpc extension against the next future PHP version
currently in alpha, beta or release candidate stage.
Build php-future docker image:
$ cd grpc
$ docker build -t grpc-php/php-future -f ./src/php/docker/php-future/Dockerfile .Run image:
$ docker run -it --rm grpc-php/php-futureNOTE: PHP 5.x has reached the end-of-life state and is no longer supported.
This image tests pcntl_fork() support and makes sure scripts using
pcntl_fork() don't freeze or crash.
Build grpc-ext docker image:
$ cd grpc
$ docker build -t grpc-php/fork-support -f ./src/php/docker/fork-support/Dockerfile .Run image:
$ docker run -it --rm grpc-php/fork-support