mirror of https://github.com/grpc/grpc.git
parent
5911d2c731
commit
f47d14160a
36 changed files with 1441 additions and 0 deletions
@ -0,0 +1,86 @@ |
||||
|
||||
# gRPC PHP End-to-End Examples |
||||
|
||||
This page shows a number of ways to create a PHP gRPC client and connect with |
||||
a gRPC backend service. |
||||
|
||||
|
||||
## Run the Server |
||||
|
||||
For all the following examples, we use a simple gRPC server, written in Node. |
||||
|
||||
```sh |
||||
$ git clone https://github.com/grpc/grpc-web |
||||
$ cd grpc-web |
||||
$ docker-compose build common node-server |
||||
$ docker run -d -p 9090:9090 --name node-server grpcweb/node-server |
||||
``` |
||||
|
||||
|
||||
## Install the gRPC PECL extension |
||||
|
||||
All the following commands are assumed to be run from this current directory. |
||||
|
||||
```sh |
||||
$ cd grpc/examples/php/echo |
||||
``` |
||||
|
||||
|
||||
In order to build a PHP gRPC client, we need to install the `grpc` extension |
||||
first. |
||||
|
||||
```sh |
||||
$ docker build -t grpc-php/base -f ./base.Dockerfile . |
||||
``` |
||||
|
||||
|
||||
## CLI |
||||
|
||||
|
||||
Let's first build a simple CLI gRPC client: |
||||
|
||||
```sh |
||||
$ docker build -t grpc-php/echo-client -f ./cli.Dockerfile . |
||||
$ docker run -it --rm --link node-server:node-server grpc-php/echo-client |
||||
$ php client.php |
||||
``` |
||||
|
||||
|
||||
|
||||
## Apache |
||||
|
||||
|
||||
Now let's see how the gRPC PHP client can run with Apache: |
||||
|
||||
```sh |
||||
$ docker build -t grpc-php/apache -f ./apache.Dockerfile . |
||||
$ docker run -it --rm --link node-server:node-server -p 80:80 grpc-php/apache |
||||
``` |
||||
|
||||
Open the browser to `http://localhost`. |
||||
|
||||
|
||||
|
||||
## Nginx + FPM |
||||
|
||||
|
||||
We can also try running PHP-FPM and put Nginx in front of it. |
||||
|
||||
|
||||
The PHP-FPM part: |
||||
|
||||
```sh |
||||
$ docker build -t grpc-php/fpm -f ./fpm.Dockerfile . |
||||
$ docker run -it --rm --link node-server:node-server -p 9000:9000 \ |
||||
--name fpm grpc-php/fpm |
||||
``` |
||||
|
||||
The Nginx part: |
||||
|
||||
```sh |
||||
$ docker run -it --rm -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro \ |
||||
--link fpm:fpm -p 80:80 nginx:1.17.4 |
||||
``` |
||||
|
||||
|
||||
Open the browser to `http://localhost`. |
@ -0,0 +1,49 @@ |
||||
# Copyright 2019 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 composer:1.8.6 as composer |
||||
|
||||
|
||||
FROM grpc-php/base as grpc-base |
||||
|
||||
|
||||
FROM php:7.2-apache-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y git |
||||
|
||||
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer |
||||
|
||||
COPY --from=grpc-base /usr/local/bin/protoc /usr/local/bin/protoc |
||||
|
||||
COPY --from=grpc-base /github/grpc/bins/opt/grpc_php_plugin \ |
||||
/usr/local/bin/protoc-gen-grpc |
||||
|
||||
COPY --from=grpc-base \ |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so \ |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so |
||||
|
||||
|
||||
RUN docker-php-ext-enable grpc |
||||
|
||||
|
||||
WORKDIR /var/www/html |
||||
|
||||
COPY client.php ./index.php |
||||
COPY composer.json . |
||||
COPY echo.proto . |
||||
|
||||
RUN protoc -I=. echo.proto --php_out=. --grpc_out=. |
||||
|
||||
RUN composer install |
@ -0,0 +1,38 @@ |
||||
# Copyright 2019 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:7.2-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf automake curl git libtool \ |
||||
pkg-config unzip zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/\ |
||||
protoc-3.8.0-linux-x86_64.zip -o /tmp/protoc.zip && \ |
||||
unzip -qq protoc.zip && \ |
||||
cp /tmp/bin/protoc /usr/local/bin/protoc |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init && \ |
||||
cd third_party/protobuf && git submodule update --init |
||||
|
||||
RUN make grpc_php_plugin |
||||
|
||||
RUN pecl install grpc |
@ -0,0 +1,52 @@ |
||||
# Copyright 2019 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 composer:1.8.6 as composer |
||||
|
||||
|
||||
FROM grpc-php/base as grpc-base |
||||
|
||||
|
||||
FROM php:7.2-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y git |
||||
|
||||
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer |
||||
|
||||
COPY --from=grpc-base /usr/local/bin/protoc /usr/local/bin/protoc |
||||
|
||||
COPY --from=grpc-base /github/grpc/bins/opt/grpc_php_plugin \ |
||||
/usr/local/bin/protoc-gen-grpc |
||||
|
||||
COPY --from=grpc-base \ |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so \ |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so |
||||
|
||||
|
||||
RUN docker-php-ext-enable grpc |
||||
|
||||
|
||||
WORKDIR /github/grpc-php/examples/echo |
||||
|
||||
COPY client.php . |
||||
COPY composer.json . |
||||
COPY echo.proto . |
||||
|
||||
RUN protoc -I=. echo.proto --php_out=. --grpc_out=. |
||||
|
||||
RUN composer install |
||||
|
||||
|
||||
CMD ["/bin/bash"] |
@ -0,0 +1,45 @@ |
||||
<?php |
||||
/* |
||||
* |
||||
* Copyright 2018 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. |
||||
* |
||||
*/ |
||||
|
||||
require dirname(__FILE__).'/vendor/autoload.php'; |
||||
|
||||
$client = new Grpc\Gateway\Testing\EchoServiceClient('node-server:9090', [ |
||||
'credentials' => Grpc\ChannelCredentials::createInsecure(), |
||||
]); |
||||
|
||||
|
||||
// unary call |
||||
$request = new Grpc\Gateway\Testing\EchoRequest(); |
||||
$request->setMessage("Hello World!"); |
||||
|
||||
list($response, $status) = $client->Echo($request)->wait(); |
||||
|
||||
echo $response->getMessage()."\n"; |
||||
|
||||
|
||||
// server streaming call |
||||
$stream_request = new Grpc\Gateway\Testing\ServerStreamingEchoRequest(); |
||||
$stream_request->setMessage("stream message"); |
||||
$stream_request->setMessageCount(5); |
||||
|
||||
$responses = $client->ServerStreamingEcho($stream_request)->responses(); |
||||
|
||||
foreach ($responses as $response) { |
||||
echo $response->getMessage()."\n"; |
||||
} |
@ -0,0 +1,12 @@ |
||||
{ |
||||
"name": "grpc-php/echo-example", |
||||
"require": { |
||||
"grpc/grpc": "^v1.22.0", |
||||
"google/protobuf": "^3.7.0" |
||||
}, |
||||
"autoload": { |
||||
"psr-4": { |
||||
"": "./" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,100 @@ |
||||
// Copyright 2019 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package grpc.gateway.testing; |
||||
|
||||
message Empty {} |
||||
|
||||
message EchoRequest { |
||||
string message = 1; |
||||
} |
||||
|
||||
message EchoResponse { |
||||
string message = 1; |
||||
int32 message_count = 2; |
||||
} |
||||
|
||||
// Request type for server side streaming echo. |
||||
message ServerStreamingEchoRequest { |
||||
// Message string for server streaming request. |
||||
string message = 1; |
||||
|
||||
// The total number of messages to be generated before the server |
||||
// closes the stream; default is 10. |
||||
int32 message_count = 2; |
||||
|
||||
// The interval (ms) between two server messages. The server implementation |
||||
// may enforce some minimum interval (e.g. 100ms) to avoid message overflow. |
||||
int32 message_interval = 3; |
||||
} |
||||
|
||||
// Response type for server streaming response. |
||||
message ServerStreamingEchoResponse { |
||||
// Response message. |
||||
string message = 1; |
||||
} |
||||
|
||||
// Request type for client side streaming echo. |
||||
message ClientStreamingEchoRequest { |
||||
// A special value "" indicates that there's no further messages. |
||||
string message = 1; |
||||
} |
||||
|
||||
// Response type for client side streaming echo. |
||||
message ClientStreamingEchoResponse { |
||||
// Total number of client messages that have been received. |
||||
int32 message_count = 1; |
||||
} |
||||
|
||||
// A simple echo service. |
||||
service EchoService { |
||||
// One request followed by one response |
||||
// The server returns the client message as-is. |
||||
rpc Echo(EchoRequest) returns (EchoResponse); |
||||
|
||||
// Sends back abort status. |
||||
rpc EchoAbort(EchoRequest) returns (EchoResponse) {} |
||||
|
||||
// One empty request, ZERO processing, followed by one empty response |
||||
// (minimum effort to do message serialization). |
||||
rpc NoOp(Empty) returns (Empty); |
||||
|
||||
// One request followed by a sequence of responses (streamed download). |
||||
// The server will return the same client message repeatedly. |
||||
rpc ServerStreamingEcho(ServerStreamingEchoRequest) |
||||
returns (stream ServerStreamingEchoResponse); |
||||
|
||||
// One request followed by a sequence of responses (streamed download). |
||||
// The server abort directly. |
||||
rpc ServerStreamingEchoAbort(ServerStreamingEchoRequest) |
||||
returns (stream ServerStreamingEchoResponse) {} |
||||
|
||||
// A sequence of requests followed by one response (streamed upload). |
||||
// The server returns the total number of messages as the result. |
||||
rpc ClientStreamingEcho(stream ClientStreamingEchoRequest) |
||||
returns (ClientStreamingEchoResponse); |
||||
|
||||
// A sequence of requests with each message echoed by the server immediately. |
||||
// The server returns the same client messages in order. |
||||
// E.g. this is how the speech API works. |
||||
rpc FullDuplexEcho(stream EchoRequest) returns (stream EchoResponse); |
||||
|
||||
// A sequence of requests followed by a sequence of responses. |
||||
// The server buffers all the client messages and then returns the same |
||||
// client messages one by one after the client half-closes the stream. |
||||
// This is how an image recognition API may work. |
||||
rpc HalfDuplexEcho(stream EchoRequest) returns (stream EchoResponse); |
||||
} |
@ -0,0 +1,49 @@ |
||||
# Copyright 2019 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 composer:1.8.6 as composer |
||||
|
||||
|
||||
FROM grpc-php/base as grpc-base |
||||
|
||||
|
||||
FROM php:7.2-fpm-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y git |
||||
|
||||
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer |
||||
|
||||
COPY --from=grpc-base /usr/local/bin/protoc /usr/local/bin/protoc |
||||
|
||||
COPY --from=grpc-base /github/grpc/bins/opt/grpc_php_plugin \ |
||||
/usr/local/bin/protoc-gen-grpc |
||||
|
||||
COPY --from=grpc-base \ |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so \ |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so |
||||
|
||||
|
||||
RUN docker-php-ext-enable grpc |
||||
|
||||
|
||||
WORKDIR /var/www/html |
||||
|
||||
COPY client.php ./index.php |
||||
COPY composer.json . |
||||
COPY echo.proto . |
||||
|
||||
RUN protoc -I=. echo.proto --php_out=. --grpc_out=. |
||||
|
||||
RUN composer install |
@ -0,0 +1,23 @@ |
||||
server { |
||||
listen 80; |
||||
server_name localhost; |
||||
root /var/www/html; |
||||
|
||||
index index.php; |
||||
|
||||
location / { |
||||
try_files $uri $uri/ /index.php?$args; |
||||
} |
||||
|
||||
location ~ [^/]\.php(/|$) { |
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$; |
||||
|
||||
include fastcgi_params; |
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
||||
fastcgi_param PATH_INFO $fastcgi_path_info; |
||||
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; |
||||
|
||||
fastcgi_pass fpm:9000; |
||||
fastcgi_index index.php; |
||||
} |
||||
} |
@ -0,0 +1,40 @@ |
||||
#!/bin/bash |
||||
# Copyright 2018 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. |
||||
|
||||
set -e |
||||
cd $(dirname $0)/../../.. |
||||
|
||||
ALL_IMAGES=( grpc-ext grpc-src alpine php5 php-src php-future php-zts |
||||
fork-support ) |
||||
|
||||
if [[ "$1" == "--cmds" ]]; then |
||||
for arg in "${ALL_IMAGES[@]}" |
||||
do |
||||
echo "docker build -t grpc-php/$arg -f ./src/php/docker/$arg/Dockerfile ." |
||||
done |
||||
exit 0 |
||||
fi |
||||
|
||||
if [[ $# -eq 0 ]]; then |
||||
lst=("${ALL_IMAGES[@]}") |
||||
else |
||||
lst=("$@") |
||||
fi |
||||
|
||||
set -x |
||||
for arg in "${lst[@]}" |
||||
do |
||||
docker build -t grpc-php/"$arg" -f ./src/php/docker/"$arg"/Dockerfile . |
||||
done |
@ -0,0 +1,40 @@ |
||||
#!/bin/bash |
||||
# Copyright 2018 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. |
||||
|
||||
set -e |
||||
cd $(dirname $0)/../../.. |
||||
|
||||
ALL_IMAGES=( grpc-ext grpc-src alpine php5 php-src php-future php-zts |
||||
fork-support ) |
||||
|
||||
if [[ "$1" == "--cmds" ]]; then |
||||
for arg in "${ALL_IMAGES[@]}" |
||||
do |
||||
echo "docker run -it --rm grpc-php/$arg" |
||||
done |
||||
exit 0 |
||||
fi |
||||
|
||||
if [[ $# -eq 0 ]]; then |
||||
lst=("${ALL_IMAGES[@]}") |
||||
else |
||||
lst=("$@") |
||||
fi |
||||
|
||||
set -x |
||||
for arg in "${lst[@]}" |
||||
do |
||||
docker run -it --rm grpc-php/"$arg" |
||||
done |
@ -0,0 +1,96 @@ |
||||
|
||||
# Docker Images for Testing |
||||
|
||||
This directory contains a number of docker images to assist testing the |
||||
[gRPC PECL extension](http://pecl.php.net/package/grpc) against various |
||||
different PHP environments. |
||||
|
||||
|
||||
## Build and Run Tests |
||||
|
||||
To build all docker images: |
||||
|
||||
```sh |
||||
# cd grpc |
||||
$ ./src/php/bin/build_all_docker_images.sh |
||||
|
||||
# or to only build some selected images |
||||
$ ./src/php/bin/build_all_docker_images.sh grpc-ext php-src |
||||
|
||||
# or to only print out individual `docker build` commands |
||||
$ ./src/php/bin/build_all_docker_images.sh --cmds |
||||
``` |
||||
|
||||
|
||||
To run all tests: |
||||
|
||||
```sh |
||||
$ cd grpc |
||||
$ ./src/php/bin/run_all_docker_images.sh |
||||
|
||||
# or to only run some selected images |
||||
$ ./src/php/bin/run_all_docker_images.sh grpc-ext php-src |
||||
|
||||
# or to only print out individual `docker run` commands |
||||
$ ./src/php/bin/run_all_docker_images.sh --cmds |
||||
``` |
||||
|
||||
|
||||
## `grpc-ext` |
||||
|
||||
This image builds the full `grpc` PECL extension (effectively the current |
||||
release candidate), installs it against the current PHP version, and runs the |
||||
unit tests. |
||||
|
||||
|
||||
## `grpc-src` |
||||
|
||||
This 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. |
||||
|
||||
|
||||
## `alpine` |
||||
|
||||
This image builds the `grpc` extension against the current PHP version in an |
||||
Alpine-Linux base image. |
||||
|
||||
|
||||
## `php-src` |
||||
|
||||
Instead of using a general purpose base docker image provided by PHP, here we |
||||
compile PHP itself from |
||||
[source](https://github.com/php/php-src). 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. |
||||
|
||||
|
||||
## `php-zts` |
||||
|
||||
This image builds the `grpc` extension against the current PHP version with ZTS |
||||
enabled. |
||||
|
||||
|
||||
## `php-future` |
||||
|
||||
This image builds the `grpc` extension against the next future PHP version |
||||
currently in alpha, beta or release candidate stage. |
||||
|
||||
|
||||
## `php5` |
||||
|
||||
This image builds the `grpc` extension against a PHP 5 base image with ZTS |
||||
enabled. |
||||
|
||||
NOTE: PHP 5.x has reached the end-of-life state and is no longer supported. |
||||
|
||||
|
||||
## `fork-support` |
||||
|
||||
This image tests `pcntl_fork()` support and makes sure scripts using |
||||
`pcntl_fork()` don't hang or crash. |
@ -0,0 +1,38 @@ |
||||
# Copyright 2019 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:7.2-alpine3.9 |
||||
|
||||
RUN apk add autoconf g++ make zlib-dev git bash wget |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && \ |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,27 @@ |
||||
# Copyright 2019 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 grpc-php/php-src |
||||
|
||||
WORKDIR /tmp |
||||
|
||||
COPY src/php/docker/fork-support/fork.php . |
||||
|
||||
RUN echo '\ |
||||
extension=grpc.so\n\ |
||||
grpc.enable_fork_support=1\n\ |
||||
grpc.poll_strategy=epoll1\n\ |
||||
' >> /usr/local/lib/php.ini |
||||
|
||||
CMD ["php", "fork.php"] |
@ -0,0 +1,35 @@ |
||||
<?php |
||||
/* |
||||
* |
||||
* Copyright 2018 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. |
||||
* |
||||
*/ |
||||
|
||||
$pid = pcntl_fork(); |
||||
if ($pid == -1) { |
||||
die("could not fork"); |
||||
|
||||
} else if ($pid) { |
||||
// parent |
||||
echo "parent waiting...\n"; |
||||
pcntl_waitpid($pid, /*&*/$pcntl_status); |
||||
|
||||
} else { |
||||
// child |
||||
echo "child exiting...\n"; |
||||
exit(0); |
||||
} |
||||
|
||||
echo "parent finishing. Done\n"; |
@ -0,0 +1,40 @@ |
||||
# Copyright 2019 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:7.2-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf automake git libtool pkg-config \ |
||||
valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && \ |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,48 @@ |
||||
# Copyright 2019 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:7.2-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf automake git libtool pkg-config \ |
||||
valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init && \ |
||||
make && make install |
||||
|
||||
|
||||
WORKDIR /github/grpc/src/php/ext/grpc |
||||
|
||||
COPY src/php/ext/grpc/*.c ./ |
||||
COPY src/php/ext/grpc/*.h ./ |
||||
COPY src/php/ext/grpc/config.m4 ./ |
||||
|
||||
RUN phpize && \ |
||||
./configure --enable-tests && \ |
||||
make && \ |
||||
make install |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh"] |
@ -0,0 +1,40 @@ |
||||
# Copyright 2019 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:7.4.0RC1-buster |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf automake git libtool pkg-config \ |
||||
wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && \ |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,62 @@ |
||||
# Copyright 2019 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 |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf build-essential git libtool \ |
||||
libcurl4-openssl-dev libedit-dev libsodium-dev \ |
||||
libssl-dev libxml2-dev \ |
||||
pkg-config valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
RUN wget http://ftp.gnu.org/gnu/bison/bison-3.4.2.tar.gz && \ |
||||
tar -zxvf bison-3.4.2.tar.gz && \ |
||||
cd bison-3.4.2 && \ |
||||
./configure && make && make install |
||||
|
||||
|
||||
WORKDIR /github/php-src |
||||
|
||||
RUN git clone https://github.com/php/php-src . |
||||
|
||||
RUN git checkout php-7.2.22 && \ |
||||
./buildconf --force && \ |
||||
./configure --build=x86_64-linux-gnu --enable-option-checking=fatal \ |
||||
--enable-debug --enable-pcntl \ |
||||
--enable-ftp --enable-mbstring --enable-mysqlnd \ |
||||
--with-curl --with-libedit --with-mhash --with-openssl \ |
||||
--with-sodium=shared --with-zlib && \ |
||||
make && make install |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && \ |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,40 @@ |
||||
# Copyright 2019 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:7.2-zts-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf automake git libtool pkg-config \ |
||||
wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && \ |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,40 @@ |
||||
# Copyright 2019 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:5.6-zts-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y \ |
||||
autoconf automake git libtool pkg-config \ |
||||
valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && \ |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && \ |
||||
chmod +x /usr/local/bin/phpunit |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && \ |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && \ |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,41 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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 composer:1.8.6 as composer |
||||
|
||||
|
||||
FROM grpc-php/base as grpc-base |
||||
|
||||
|
||||
FROM php:${settings.php_version.php_current_version()}-apache-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y git |
||||
|
||||
|
||||
<%include file="copy_from_grpc_base.include" /> |
||||
|
||||
RUN docker-php-ext-enable grpc |
||||
|
||||
|
||||
WORKDIR /var/www/html |
||||
|
||||
COPY client.php ./index.php |
||||
COPY composer.json . |
||||
COPY echo.proto . |
||||
|
||||
RUN protoc -I=. echo.proto --php_out=. --grpc_out=. |
||||
|
||||
RUN composer install |
@ -0,0 +1,40 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:${settings.php_version.php_current_version()}-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf automake curl git libtool ${'\\'} |
||||
pkg-config unzip zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/${'\\'} |
||||
protoc-3.8.0-linux-x86_64.zip -o /tmp/protoc.zip && ${'\\'} |
||||
unzip -qq protoc.zip && ${'\\'} |
||||
cp /tmp/bin/protoc /usr/local/bin/protoc |
||||
|
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && ${'\\'} |
||||
git submodule update --init && ${'\\'} |
||||
cd third_party/protobuf && git submodule update --init |
||||
|
||||
RUN make grpc_php_plugin |
||||
|
||||
RUN pecl install grpc |
@ -0,0 +1,44 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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 composer:1.8.6 as composer |
||||
|
||||
|
||||
FROM grpc-php/base as grpc-base |
||||
|
||||
|
||||
FROM php:${settings.php_version.php_current_version()}-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y git |
||||
|
||||
|
||||
<%include file="copy_from_grpc_base.include" /> |
||||
|
||||
RUN docker-php-ext-enable grpc |
||||
|
||||
|
||||
WORKDIR /github/grpc-php/examples/echo |
||||
|
||||
COPY client.php . |
||||
COPY composer.json . |
||||
COPY echo.proto . |
||||
|
||||
RUN protoc -I=. echo.proto --php_out=. --grpc_out=. |
||||
|
||||
RUN composer install |
||||
|
||||
|
||||
CMD ["/bin/bash"] |
@ -0,0 +1,10 @@ |
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer |
||||
|
||||
COPY --from=grpc-base /usr/local/bin/protoc /usr/local/bin/protoc |
||||
|
||||
COPY --from=grpc-base /github/grpc/bins/opt/grpc_php_plugin ${'\\'} |
||||
/usr/local/bin/protoc-gen-grpc |
||||
|
||||
COPY --from=grpc-base ${'\\'} |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so ${'\\'} |
||||
/usr/local/lib/php/extensions/no-debug-non-zts-20170718/grpc.so |
@ -0,0 +1,41 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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 composer:1.8.6 as composer |
||||
|
||||
|
||||
FROM grpc-php/base as grpc-base |
||||
|
||||
|
||||
FROM php:${settings.php_version.php_current_version()}-fpm-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y git |
||||
|
||||
|
||||
<%include file="copy_from_grpc_base.include" /> |
||||
|
||||
RUN docker-php-ext-enable grpc |
||||
|
||||
|
||||
WORKDIR /var/www/html |
||||
|
||||
COPY client.php ./index.php |
||||
COPY composer.json . |
||||
COPY echo.proto . |
||||
|
||||
RUN protoc -I=. echo.proto --php_out=. --grpc_out=. |
||||
|
||||
RUN composer install |
@ -0,0 +1,28 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:${settings.php_version.php_current_version()}-alpine3.9 |
||||
|
||||
RUN apk add autoconf g++ make zlib-dev git bash wget |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
<%include file="../pecl_ext_build_src.include" /> |
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,3 @@ |
||||
RUN wget https://phar.phpunit.de/phpunit-4.8.36.phar && ${'\\'} |
||||
mv phpunit-4.8.36.phar /usr/local/bin/phpunit && ${'\\'} |
||||
chmod +x /usr/local/bin/phpunit |
@ -0,0 +1,30 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:${settings.php_version.php_current_version()}-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf automake git libtool pkg-config ${'\\'} |
||||
valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
<%include file="../pecl_ext_build_src.include" /> |
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,47 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:${settings.php_version.php_current_version()}-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf automake git libtool pkg-config ${'\\'} |
||||
valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && ${'\\'} |
||||
git submodule update --init && ${'\\'} |
||||
make && make install |
||||
|
||||
|
||||
WORKDIR /github/grpc/src/php/ext/grpc |
||||
|
||||
COPY src/php/ext/grpc/*.c ./ |
||||
COPY src/php/ext/grpc/*.h ./ |
||||
COPY src/php/ext/grpc/config.m4 ./ |
||||
|
||||
RUN phpize && ${'\\'} |
||||
./configure --enable-tests && ${'\\'} |
||||
make && ${'\\'} |
||||
make install |
||||
|
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh"] |
@ -0,0 +1,9 @@ |
||||
WORKDIR /github/grpc |
||||
|
||||
RUN git clone https://github.com/grpc/grpc . && ${'\\'} |
||||
git submodule update --init |
||||
|
||||
COPY src/ ./src |
||||
|
||||
RUN pear package && ${'\\'} |
||||
find . -name grpc-*.tgz | xargs -I{} pecl install {} |
@ -0,0 +1,30 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:7.4.0RC1-buster |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf automake git libtool pkg-config ${'\\'} |
||||
wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
<%include file="../pecl_ext_build_src.include" /> |
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,52 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf build-essential git libtool ${'\\'} |
||||
libcurl4-openssl-dev libedit-dev libsodium-dev ${'\\'} |
||||
libssl-dev libxml2-dev ${'\\'} |
||||
pkg-config valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
RUN wget http://ftp.gnu.org/gnu/bison/bison-3.4.2.tar.gz && ${'\\'} |
||||
tar -zxvf bison-3.4.2.tar.gz && ${'\\'} |
||||
cd bison-3.4.2 && ${'\\'} |
||||
./configure && make && make install |
||||
|
||||
|
||||
WORKDIR /github/php-src |
||||
|
||||
RUN git clone https://github.com/php/php-src . |
||||
|
||||
RUN git checkout php-7.2.22 && ${'\\'} |
||||
./buildconf --force && ${'\\'} |
||||
./configure --build=x86_64-linux-gnu --enable-option-checking=fatal ${'\\'} |
||||
--enable-debug --enable-pcntl ${'\\'} |
||||
--enable-ftp --enable-mbstring --enable-mysqlnd ${'\\'} |
||||
--with-curl --with-libedit --with-mhash --with-openssl ${'\\'} |
||||
--with-sodium=shared --with-zlib && ${'\\'} |
||||
make && make install |
||||
|
||||
|
||||
<%include file="../pecl_ext_build_src.include" /> |
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,30 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:${settings.php_version.php_current_version()}-zts-${settings.php_version.php_debian_version()} |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf automake git libtool pkg-config ${'\\'} |
||||
wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
<%include file="../pecl_ext_build_src.include" /> |
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
@ -0,0 +1,30 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2019 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:5.6-zts-stretch |
||||
|
||||
RUN apt-get -qq update && apt-get -qq install -y ${'\\'} |
||||
autoconf automake git libtool pkg-config ${'\\'} |
||||
valgrind wget zlib1g-dev |
||||
|
||||
|
||||
WORKDIR /tmp |
||||
|
||||
<%include file="../download_phpunit.include" /> |
||||
|
||||
<%include file="../pecl_ext_build_src.include" /> |
||||
|
||||
CMD ["/github/grpc/src/php/bin/run_tests.sh", "--skip-persistent-channel-tests"] |
Loading…
Reference in new issue