- Go环境
go 1.13
export GOSUMDB=off
export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
使用docker-compose
快速启动服务,适合搭建本地开发环境,省去每个服务去做启动管理的烦恼,Compose启动后可以对单个服务进行重新编译启动。
Compose包含以下服务:
- Etcd注册中心
etcd
,使用docker镜像bitnami/etcd
- API网关
gateway
,使用docker镜像hbchen/starter-kit-gateway
- Console Web
web
- Console API
api
- Account SRV
account
Compose启动服务
1.首次运行创建Docker网络
docker network create starter-kit-console
2.Go编译,编译Console项目全部服务,包括web
、api
和account
服务
使用Dockerfile编译太慢,所以编译还是选择使用本机环境
make build
3.启动服务
p
参数为项目名称,可以自己定义
make start p=starter-kit-console
# 或
docker-compose -p starter-kit-console up
4.服务测试
重新编译并启动服务
例如要重启
api
服务 注意:web
服务前端没有自动编译,需要单独运行make vue
更新前端
方法一:
使用Makefile
的make restart
命令,p
项目名称,s
服务名称
make restart p=starter-kit-console s=api
方法二:
使用docker-compose
分步操作,stop
停止服务、Go编译、build
重新构建服务镜像、up
启动服务
docker-compose -p starter-kit-console stop api
cd api && make build_linux && cd ..
docker-compose -p starter-kit-console build api
docker-compose -p starter-kit-console up -d --no-deps --force-recreate api
Compose常用命令
# 移除compose file中没有定义的容器
docker-compose -p starter-kit-console down --remove-orphans
如果使用Etcd注册中心需要自己维护
1.运行网关
$ cd gateway
# 编译
$ make build
# API网关(二选一)
$ make run_api # 默认mdns + http
$ make run_api registry=etcd transport=tcp # 使用etcd + tcp
2.运行服务
- Web服务
console/web
- API服务
console/api
- Account服务
console/account
注:
registry
、transport
选择与网关一致
$ cd {指定服务目录}
# 运行服务(二选一)
$ make build run # 默认mdns + http
$ make build run registry=etcd transport=tcp # 使用etcd + tcp
Makefile说明
$ make build # 编译
$ make run # 运行
$ make run registry=etcd transport=tcp # 运行,指定registry、transport
$ make build run # 编译&运行
$ make build run registry=etcd transport=tcp # 编译&运行,指定registry、transport
$ make vue statik # 前端编译,并打包statik.go文件
$ make docker tag=xxx/xxx:v0.0.1
注:
console API
由于有认证
不能直接访问
- gateway
- console
- Web
- API
项目.proto
文件统一在pb
目录下,协议生成的out
输出到指定子项目位置gen=path
# console目录运行make proto输出到子项目的genproto
make proto gen=api/genproto
make proto gen=account/genproto
# 或在子项目目录运行make proto,实际仍是调用console下的make proto
cd api
make proto