本文直接用安装包的方式安装。

源码编译安装参考:https://www.cnblogs.com/abc36725612/p/14288333.html

环境

golang的docker image

docker run -it golang:alpine

go语言的grpc环境安装

参考官方grpc-go文档:https://grpc.io/docs/languages/go/quickstart/

  1. 添加go依赖包的代理
# go env -w GO111MODULE=on
//重要:添加代理,参考:https://goproxy.cn/
# go env -w GOPROXY=https://goproxy.cn,direct
  1. 安装protobuf
# apk add protobuf
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/7) Installing libgcc (9.3.0-r2)
(2/7) Installing libstdc++ (9.3.0-r2)
(3/7) Installing libprotobuf (3.12.2-r0)
(4/7) Installing libprotoc (3.12.2-r0)
(5/7) Installing protoc (3.12.2-r0)
(6/7) Installing libprotobuf-lite (3.12.2-r0)
(7/7) Installing protobuf (3.12.2-r0)
Executing busybox-1.31.1-r19.trigger
OK: 13 MiB in 22 packages
//查看版本
# protoc --version
libprotoc 3.12.2
  1. 安装protoc-gen-go插件
# go get google.golang.org/protobuf/cmd/protoc-gen-go
  1. 安装grcp-go
# go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
  1. 修改PATH,使得protoc 编译器能找到protoc-gen-go插件
export PATH="$PATH:$(go env GOPATH)/bin"

环境安装完成!

验证

下载示例代码:https://github.com/grpc/grpc-go

服务端启动

$ docker ps | grep golang
f37f662a3f54 golang "/bin/sh" 14 minutes ago Up 14 minutes ecstatic_lamport
$ docker exec -it f37f662a3f54 sh # cd /grpc-go/examples/helloworld/
helloworld # ls
greeter_client greeter_server helloworld helloworld # go run greeter_server/main.go
go: downloading github.com/golang/protobuf v1.4.2
go: downloading google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98
go: downloading golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: downloading golang.org/x/text v0.3.0
2021/01/16 11:41:50 Received: world

客户端启动

$ docker ps | grep golang
f37f662a3f54 golang "/bin/sh" 14 minutes ago Up 14 minutes ecstatic_lamport
$ docker exec -it f37f662a3f54 sh # cd /grpc-go/examples/helloworld/
helloworld # ls
greeter_client greeter_server helloworld helloworld # go run greeter_client/main.go
2021/01/16 11:41:50 Greeting: Hello world

测试成功!

最新文章

  1. Lambda 表达式[MSDN]
  2. Learn ZYNQ (8)
  3. java多线程基础
  4. zoj 2110
  5. 开启tomcat的apr模式,并利用redis做tomcat7的session的共享。
  6. JavaWeb学习笔记九 过滤器、注解
  7. bisect 二分查找
  8. 外呼系统APP外呼软件手机电销软件拨号销售软件功能设计
  9. Apicloud学习第三天——获取云数据库的数据方法
  10. 从Java到JVM到OS线程睡眠
  11. Jmeter使用笔记之html报告扩展(一)
  12. Collection 接口
  13. iOS 线上版本图片资源格式的问题导致的闪退
  14. CDMA码片序列问题
  15. java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
  16. PyMongo基本使用
  17. 深入了解Linux(一)
  18. SQL SERVER循环遍历(普通循环和游标循环)
  19. FFmpeg在Linux下编译使用
  20. jquery-osx

热门文章

  1. 「Tubian」Tubian0.41!支持Windows QQ微信!
  2. [题解] Atcoder Beginner Contest ABC 270 G Ex 题解
  3. Invalid bound statement (not found)出现原因和解决方法
  4. 2022-08-25-cdn套中套
  5. 测试杂谈——一条SQL引发的思考(二)
  6. web share api 分享
  7. breakout靶机
  8. 靶机: easy_cloudantivirus
  9. 这才是使用ps命令的正确姿势
  10. Rock18框架之整体框架介绍