按grpc-web官方示例配置envoy后docker-compose启动找不到服务如何解决
问题解决指南
报错根本原因
ERROR: No such service报错的核心是你只完成了Envoy代理规则的配置(即你贴出的envoy.yaml),但缺少Docker Compose的服务定义文件docker-compose.yml,docker-compose命令无法识别你指定的node-server、envoy、commonjs-client这几个服务标识。
补充所需配置
你需要在envoy.yaml所在的同级目录下,新建名为docker-compose.yml的文件,写入以下服务定义内容:
version: '3.8' services: # gRPC后端服务 node-server: image: grpcweb/node-server:latest expose: - "9090" # Envoy代理服务 envoy: image: envoyproxy/envoy:v1.27.0 ports: - "8080:8080" - "9901:9901" volumes: # 挂载你本地编写的envoy配置文件到容器内指定路径 - ./envoy.yaml:/etc/envoy/envoy.yaml command: envoy -c /etc/envoy/envoy.yaml depends_on: - node-server # 前端测试客户端 commonjs-client: image: grpcweb/commonjs-client:latest depends_on: - envoy
后续操作步骤
- 保存
docker-compose.yml文件后,重新执行镜像拉取命令:
docker-compose pull node-server envoy commonjs-client
- 拉取完成后执行启动命令即可正常运行:
docker-compose up node-server envoy commonjs-client
内容的提问来源于stack exchange,提问作者Alex Ironside
相关产品推荐
相关产品推荐

