基于 Docker 的 go grpc quickstart

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

1.编写 Dockerfile 文件

sh 复制代码
FROM golang:1.20.11-bullseye
RUN apt-get update \ 
    && apt-get install -y protobuf-compiler \
    && go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 \
	&& go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 \
	&& export PATH="$PATH:$(go env GOPATH)/bin"
CMD ["/bin/bash"]

2.构建镜像

docker build -t rpc_go:0.1 .

官方文档这里强调要确保版本号是 3+,所以要执行这个命令看一下。

3.拉取示例代码

git clone -b v1.63.0 --depth 1 https://github.com/grpc/grpc-go

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

4.启动容器

启动服务端,它拉取必要的依赖,然后监听 50051 端口。

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

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

相关推荐
参.商.23 分钟前
【Day43】49. 字母异位词分组
leetcode·golang
ZZZKKKRTSAE26 分钟前
rhel9快速上手Docker
运维·docker·容器
筱顾大牛27 分钟前
Docker安装教程(加汉化!超详细!!!)
运维·docker·容器
九成宫1 小时前
安装和配置Docker教程(装在其他盘)
运维·docker·容器
参.商.1 小时前
【Day45】647. 回文子串 5. 最长回文子串
leetcode·golang
janthinasnail1 小时前
使用Docker安装nanobot(超轻量个人AI助手)
docker·容器
恋红尘3 小时前
K8S 配置与调度-叩丁狼
云原生·容器·kubernetes
AMoon丶3 小时前
Golang--内存管理
开发语言·后端·算法·缓存·golang·os
喵喵爱自由3 小时前
Docker容器共享宿主机-安全网络
网络·安全·docker
杨浦老苏3 小时前
搜索引擎聚合器Degoog
搜索引擎·docker·群晖