基于 Docker 的 python grpc quickstart

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

1.编写 Dockerfile 文件

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/593380.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络(五) 传输层

传输层 一、传输层概述二、TCP1.报文段格式2.连接管理3.可靠传输4.流量控制5.拥塞控制 三、UDP1.报文段格式2.校验 一、传输层概述 从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功…

【自动化测试】 环境部署和元素定位

写在前面 勤奋跟吃苦不一样,假如你对工作,生活不满意。就要跳出圈子,接触其它人或事物,提升自己。从而换个工作,或者换了心态看待问题。而不是,吃苦的加班逼着自己去内卷,卷来卷去觉得吃苦受累&…

<网络安全>《71 微课堂<常见的国家级APT组织介绍>》

1 简介 国家级APT(Advanced Persistent Threat,高级持续性威胁)组织是有国家背景支持的顶尖黑客团伙,专注于针对特定目标进行长期的持续性网络攻击。 2 十大APT 2.1 NSA 美国国家安全局(National Security Agency&a…

C++之类

目录 一:面向过程和面向对象的初步认识 二:类的引入 三:类的定义 3.1类的两种定义方式: 3.2成员变量命名的建议 四:类的访问限定符及封装 4.1类的访问限定符 4.2封装 一:面向过程和面向对象的初步认…

配置code-server和texlive实现网页写tex

使用overleaf太卡了,有云服务器或者nas小主机,配置自己的code-servertexlive,来写论文。 之前用服务器配置过自己的overleaf,感觉不是很好用,缺少东西。 一、思路 使用docker先安装一个ubuntu,用dockerfil…

openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint

文章目录 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint256.1 功能描述256.2 语法格式256.3 参数说明 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint 256.1 功能描述 设置本次查询执行内生效的…

ruoyi-nbcio-plus基于vue3的flowable流程元素选择区面板的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

BoostCompass —— 搜索引擎

文章目录 一、项目简介二、Boost库简介1. 简介2. Boost 库的特点 三、项目主要模块1. 网页内容获取,数据预处理模块2. 建立正排索引和倒排索引,项目核心模块3. 编写 http_server 模块,进行网络开放 四、项目功能预览1. 项目文件预览2. 项目执…

什么是工业协议转换软件?

在现代工业自动化领域,随着技术的不断革新和智能化水平的提升,各种工业设备和系统之间的通信变得日益重要。然而,由于历史、技术差异和标准多样化等原因,不同的工业设备和系统往往采用各自独特的通信协议,导致它们之间…

【T5中的激活函数】GLU Variants Improve Transformer

【mT5中的激活函数】GLU Variants Improve Transformer 论文信息 阅读评价 Abstract Introduction Gated Linear Units (GLU) and Variants Experiments on Text-to-Text Transfer Transformer (T5) Conclusion 论文信息 名称内容论文标题GLU Variants Improve Transfo…

算法设计与分析实验报告c++实现(排序算法、三壶谜题、交替放置的碟子、带锁的门)

一、实验目的 1.加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握; 2.提高学生利用课堂所学知识解决实际问题的能力; 3.提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、 编…

HackTheBox-Mist

整体思路 端口扫描->Pluck CMS组件文件读取漏洞->文件上传获取shell->创建指向exe的快捷方式来提权-> 信息收集&端口利用 namp -sSVC 10.10.11.17目标只开放了80端口,将mist.htb加入到hosts文件后,访问mist.htb Pluck CMS文件读取 在…