Docker 使用停靠gRPC生成PHP库
我正试图在docker中构建一个GRPCPHP客户端和GRPCNodeJS服务器。但问题是我无法将Docker 使用停靠gRPC生成PHP库,docker,grpc,Docker,Grpc,我正试图在docker中构建一个GRPCPHP客户端和GRPCNodeJS服务器。但问题是我无法将protocgenphpgrpc安装到我的docker服务器上。当我尝试运行此生成文件时: proto_from_within_container: # PHP protoc /var/www/protos/smellycat.proto \ --php_out=/var/www/php-client/src \ $(: After a lot of
protocgenphpgrpc
安装到我的docker服务器上。当我尝试运行此生成文件时:
proto_from_within_container:
# PHP
protoc /var/www/protos/smellycat.proto \
--php_out=/var/www/php-client/src \
$(: After a lot of search and readings, I finally managed to build a full application that communicates with each other.
The problem was at the Makefile, at this step:
--plugin=protoc-gen-grpc=/protobuf/grpc/bins/opt/grpc_php_plugin
I was assigning the wrong path for grpc_php_plugin
.
There is my new dockerfile:
FROM php:7.4-cli
# Environment variables
ENV DEBIAN_FRONTEND=noninteractive
# Utils
RUN apt-get update -yqq && \
apt-get upgrade -yqq && \
apt-get install -y unzip build-essential git software-properties-common curl pkg-config zip zlib1g-dev
# Composer installation
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
# Install grpc and probuf with pecl
RUN pecl install grpc && pecl install protobuf
# Enable grpc and protobuf extensions in php.ini file
RUN echo starting && \
docker-php-ext-enable grpc && \
docker-php-ext-enable protobuf
# Install cmake
RUN apt-get update -yqq && apt-get -y install cmake
# Install grpc_php_plugin and protoc
RUN git clone -b v1.36.2 https://github.com/grpc/grpc && \
cd grpc && git submodule update --init && \
mkdir cmake/build && cd cmake/build && \
cmake ../.. && make protoc grpc_php_plugin
# Setting node, protoc and grpc_php_plugin paths
ENV PATH "/grpc/cmake/build:${PATH}"
ENV PATH "/grpc/cmake/build/third_party/protobuf:${PATH}"
# Moving client folder to vm
WORKDIR /var/www
COPY ./client /var/www
# Packages
RUN composer install
# Generate php libraries from proto file
RUN make proto
CMD [ "php", "./handler.php" ]
proto\u来自\u容器中的\u:
#PHP
protoc/var/www/protos/southycat.proto\
--php_out=/var/www/php-client/src\
$(:经过大量的搜索和阅读,我终于构建了一个完整的应用程序,可以相互通信。
问题出在Makefile,在这一步:
--plugin=protoc gen grpc=/protobuf/grpc/bins/opt/grpc\u php\u plugin
我为grpc\u php\u插件
分配了错误的路径
这是我的新dockerfile:
对于我的完整应用程序,.如何使用安装grpc php扩展及其所有依赖项?哇,这将非常有用。我已经完成了。非常感谢。