🍣
gRPCを使ったwebチャット実装をとりあえず試す環境作り
ググると、チャットをgRPCで実装して高速化しましたみたいな企業ブログがちらほらあるので、試してみようと思ったところ、こんな記事がありました。ここに公開されていて、docker-compose up
だけで動くということなので、早速試してみました。このまま動けば、非常に楽なのですが、そのままでは動かなかったので修正した内容を共有します。
DockerfileEnvoy
@@ -1,4 +1,4 @@
-FROM
+FROM envoyproxy/envoy:v1.16-latest
COPY ./envoy.yaml /etc/envoy/envoy.yaml
CMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml
EXPOSE 8080
どうやらdockerhubで公開されていたenvoyproxy/envoy:latest
が無くなっているようでした。最新版に変えてみましたが、破壊的な変更があるのか、そのままでは動かなかったのでv1.16-latest
にしています。
DockerfileProto
@@ -10,14 +10,12 @@ WORKDIR /proto
RUN apt-get -qq update && apt-get -qq install -y \
unzip
-RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v${PROTO_VERSION}/\
- protoc-${PROTO_VERSION}-linux-x86_64.zip -o protoc.zip && \
+RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v${PROTO_VERSION}/protoc-${PROTO_VERSION}-linux-x86_64.zip -o protoc.zip && \
unzip -qq protoc.zip && \
cp ./bin/protoc /usr/local/bin/protoc && \
cp -r ./include /usr/local
-RUN curl -sSL https://github.com/grpc/grpc-web/releases/download/${GRPCWEB_VERSION}/\
- protoc-gen-grpc-web-${GRPCWEB_VERSION}-linux-x86_64 -o /usr/local/bin/protoc-gen-grpc-web && \
+RUN curl -sSL https://github.com/grpc/grpc-web/releases/download/${GRPCWEB_VERSION}/protoc-gen-grpc-web-${GRPCWEB_VERSION}-linux-x86_64 -o /usr/local/bin/p
chmod +x /usr/local/bin/protoc-gen-grpc-web
バージョンの問題では無いので、多分このままで動く環境もあると思うのですが、修正前のDockerfileではmacOS(Catalina)のdocker desktop(3.1.0)だと次のようなエラーが出てしまいます。改行しているところがなんか半角スペースのような扱いになってますね。
Step 7/9 : RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v${PROTO_VERSION}/ protoc-${PROTO_VERSION}-linux-x86_64.zip -o protoc.zip && unzip -qq protoc.zip && cp ./bin/protoc /usr/local/bin/protoc && cp -r ./include /usr/local
---> Running in f48862b5a222
curl: (6) Could not resolve host: protoc-3.11.4-linux-x86_64.zip
以上、2箇所を修正するとdocker-compose up
すればlocalhost:3000
で動きます。envoyとの通信に失敗しているときは、ページを開いてデベロッパーツールのコンソールを見ると、何かしらエラーが出ていると思います。
Discussion