You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.0 KiB
52 lines
1.0 KiB
2 years ago
|
# 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
|
||
|
```bash
|
||
|
# 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>
|
||
|
```
|
||
|
|