go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
# 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
# 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
# install wire
go get github.com/google/wire/cmd/wire
# generate wire
cd cmd/server
wire
# 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