Commit 601ef62f authored by kzkzzzz's avatar kzkzzzz

feat: 修改readme

parent 090a171d
# Kratos Project Template
### 采用单体仓库monorepo方案, 基于go-kratos构建微服务, 注册中心使用consul
#### https://github.com/go-kratos/kratos
#### https://github.com/go-kratos/beer-shop
## Install Kratos
```
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
```
## Create a service
```
# Create a template project
kratos new server
cd server
# Add a proto template
kratos proto add api/server/server.proto
# Generate the proto code
kratos proto client api/server/server.proto
# Generate the source code of service by proto file
kratos proto server api/server/server.proto -t internal/service
go generate ./...
go build -o ./bin/ ./...
./bin/server -conf ./configs
```
## Generate other auxiliary files by Makefile
```
# Download and update dependencies
### 相关目录说明
```text
api 存放对应服务的proto文件
third_party 存放第三方的proto文件
app/service 服务
common 通用的工具类
script 相关shell脚本
tool 相关工具服务
tool/gateway 开发调试网关, 例如: go run gateway.go -c 192.168.233.1:8500
```
#### 初始化项目, 下载依赖工具, go版本1.18以上
```shell
# 开启go module
go env -w GO111MODULE=on
# 设置国内镜像
go env -w GOPROXY=https://goproxy.cn,directc
# 下载依赖
go mod download
go mod tidy
# 下载相关命令工具
make init
# Generate API files (include: pb.go, http, grpc, validate, swagger) by proto file
make api
# Generate all files
make all
```
## Automated Initialization (wire)
```
# install wire
go get github.com/google/wire/cmd/wire
# generate wire
cd cmd/server
wire
#### 新建服务, 主要是复制demo项目模板并进行替换
```shell
# 例如创建user服务
make service project=user
```
## Docker
```bash
# build
docker build -t <your-docker-image-name> .
#### 开发环境运行服务
```shell
# 运行demo服务, 修改代码自动热重载
make run project=demo
```
# run
docker run --rm -p 8000:8000 -p 9000:9000 -v </path/to/your/configs>:/data/conf <your-docker-image-name>
#### 编译
```shell
make build project=demo
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment