搭建micro服务

1. 使用ubuntu镜像安装golang

  • 结果 失败

  • 原因 golang版本低

1
2
3
$ apt install golang-go
$ go version
go version go1.10.4 linux/amd64

2. 使用golang镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 创建容器
$ docker run -it -d --name go --network host golang /bin/bash
# 进入容器
$ docker exec -it go /bin/bash

# 换源
$ echo "deb http://repo.huaweicloud.com/debian bullseye main
deb http://repo.huaweicloud.com/debian-security bullseye-security main
deb http://repo.huaweicloud.com/debian bullseye-updates main" > /etc/apt/sources.list
$ apt update
# 安装 unzip
$ apt install -y unzip

# 代理
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

# 安装 go 库
$ go get github.com/golang/protobuf/proto
$ go get github.com/golang/protobuf/protoc-gen-go
$ go get github.com/micro/micro/v3/cmd/protoc-gen-micro
$ go get github.com/micro/micro/v3

# 安装 protoc
$ curl -OL https://ghproxy.com/https://github.com/protocolbuffers/protobuf/releases/download/v3.19.1/protoc-3.19.1-linux-x86_64.zip
$ unzip -o protoc-3.19.1-linux-x86_64.zip -d /usr/local bin/protoc
$ unzip -o protoc-3.19.1-linux-x86_64.zip -d /usr/local 'include/*'
$ rm -f protoc-3.19.1-linux-x86_64.zip

# 退出
$ exit

# 添加镜像
$ docker commit go micro:v1
# 删除老的容器
$ docker rm -f go

# 添加服务端
$ docker run -d --name micro-server --network host micro:v1 micro server

# 添加客户端
$ docker run -d -it --name micro --network host micro:v1 /bin/bash

# 进入客户端容器
$ docker exec -it micro /bin/bash