基于 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 进入容器,运行客户端

相关推荐
兵慌码乱30 分钟前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 小时前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
程序员老赵6 小时前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
顾林海7 小时前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱9 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
WangMingHua11110 小时前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽14 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码14 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱1 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵1 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学