基于 Docker 的 python grpc quickstart

工作之后一直使用的 RPC 框架是 Apache 的 thrift,现在发现 grpc 更流行,所以也要学习一下,先来简单的跑一下 demo。在本地安装运行也很方便,不过因为有了 docker,所以在 docker 里面安装运行隔离性更好,顺便也提升 docker 命令行的熟练度。

1.编写 Dockerfile 文件

sh 复制代码
FROM python:3.12
RUN python3 -m pip install --upgrade pip \
    && python3 -m pip install grpcio \
    && python3 -m pip install grpcio-tools
CMD ["/bin/bash"]

2.构建镜像

docker build -t rpc_py:0.2 .

注意:因为我镜像是分层构建的,它的这个 RUN 我之前已经构建过来,我这个 Dockerfile 只是修改了 CMD,所以它构建的很快。

3.拉取示例代码

git clone -b v1.62.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc

注意:这个代码没有直接打包到镜像里面,因为之后还需要进行修改,而且容器内的东西关掉就没了,所以我是把代码拉取到本地(在启动镜像的时候挂载进去),因为我还要看代码的,修改也方便。

4.启动容器

启动服务端,它会一直监听在 50051 端口。现在文件夹 grpc 是挂载进容器的,所以如果希望修改它里面的文件,直接在本地修改保存就行了,然后在镜像里面重启服务端或者客户端就可以了。

注意:这里的 ${pwd} 这个语法是 Windows 的,如果是 Linux 应该使用 $(pwd) 才对。

使用 exec 进入容器,运行客户端

相关推荐
张张123y3 小时前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
JavaPub-rodert5 小时前
Docker 日志为什么能把磁盘写爆?讲透 json-file、local、journald、日志轮转与 docker logs
docker·eureka·json
全栈弄潮儿5 小时前
Python实战第7期:字典与集合
后端·python·编程语言
2603_965148116 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya6 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
人生匆匆6 小时前
docker部署ceph集群
ceph·docker·容器
把我格子衫拿来6 小时前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice
曲径海盗7 小时前
【Python 学习第 31 天】复习:变量与数据类型 等 3 题
python·学习笔记·编程入门
Data_Journal7 小时前
如何绕过 Cloudflare:网页抓取的最佳方法
网络·python
我命由我123458 小时前
智能助手通用问答边界
人工智能·python·学习·ai·学习方法·ai编程·智能体