Docker 使用停靠gRPC生成PHP库

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

我正试图在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 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扩展及其所有依赖项?哇,这将非常有用。我已经完成了。非常感谢。