Skip to content

Latest commit

 

History

History
112 lines (96 loc) · 2.07 KB

README.md

File metadata and controls

112 lines (96 loc) · 2.07 KB

Kratos Project Template

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
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

Docker

# build
docker build -t <your-docker-image-name> .

# run
docker run --rm -p 8000:8000 -p 9000:9000 -v </path/to/your/configs>:/data/conf <your-docker-image-name>

Tree:

./
├─api
│  └─v1
│      ├─proto
│      │  ├─helloworld
│      │  └─secondworld
│      └─services
│          ├─helloworld
│          └─secondworld
├─cmd
│  ├─testclient
│  ├─config
│  ├─helloworld
│  ├─internal
│  │  ├─config
│  │  └─start
│  └─secondworld
├─helpers
│  ├─context
│  ├─endpoint
│  ├─errors
│  ├─oneof
│  │  └─source
│  └─utils
├─internal
│  ├─agent
│  ├─bootstrap
│  ├─configs
│  └─mods
│      ├─helloworld
│      │  ├─biz
│      │  ├─dal
│      │  │  └─ent
│      │  ├─dto
│      │  ├─server
│      │  └─service
│      └─secondworld
│          ├─biz
│          ├─dal
│          ├─dto
│          ├─server
│          └─service
├─resources
│  ├─configs
│  ├─docs
│  │  ├─buf
│  │  └─openapi
└─third_party
    └─validate