go-zero标准的项目结构,以及如何使用docker-compose部署道linux服务器上
go-zero 是一个集成了各种工程实践的 Web 和微服务开发框架。以下是一个标准的 go-zero 项目结构示例,以及如何使用 docker-compose 部署到 Linux 服务器的步骤。
项目结构示例:
go-zero-example/
│
├── cmd
│ ├── api
│ │ └── main.go
│ └── rpc
│ └── main.go
│
├── etc
│ ├── api.yaml
│ └── rpc.yaml
│
├── internal
│ ├── config
│ │ └── config.go
│ ├── handler
│ │ ├── api
│ │ │ └── index.go
│ │ └── rpc
│ │ └── index.go
│ ├── logic
│ │ ├── api
│ │ │ └── index.go
│ │ └── rpc
│ │ └── index.go
│ ├── model
│ │ └── default.go
│ ├── svc
│ │ └── servicecontext.go
│ └── types
│ └── types.go
│
└── docker-compose.yml
docker-compose.yml
文件示例:
version: '3'
services:
api:
build:
context: .
dockerfile: Dockerfile
target: api
ports:
- "8080:8080"
volumes:
- ./cmd/api:/go/src/go-zero-example/cmd/api
- ./etc:/go/src/go-zero-example/etc
- ./internal:/go/src/go-zero-example/internal
- ./buffer:/go/src/go-zero-example/buffer
depends_on:
- rpc
rpc:
build:
context: .
dockerfile: Dockerfile
target: rpc
ports:
- "8081:8081"
volumes:
- ./cmd/rpc:/go/src/go-zero-example/cmd/rpc
- ./etc:/go/src/go-zero-example/etc
- ./internal:/go/src/go-zero-example/internal
- ./buffer:/go/src/go-zero-example/buffer
在 Linux 服务器上部署:
- 确保已安装 Docker 和 docker-compose。
- 将上述结构的代码和
docker-compose.yml
文件上传到服务器。 - 在包含
docker-compose.yml
文件的目录中运行docker-compose up -d
命令。
注意:
- 需要在每个服务的 Dockerfile 中指定构建目标(如 api 或 rpc)。
- 确保卷(volumes)中的路径正确映射到服务器上的代码路径。
- 确保服务器的防火墙和安全组设置允许访问相应的端口。
评论已关闭