Files
asset_helper/prompt/v2.md
2026-03-28 19:52:35 +08:00

2.9 KiB
Raw Blame History

一、前言

我需要一个单机多服务部署的后台微服务架构。

执行目标:基于纯 Docker 环境构建可编译、可运行的最小化后端骨架,无宿主机依赖(无全局 Go/Protoc/Postgres/Redis 环境)

技术栈锁定golang:1.26.1-alpine3.23、postgres:18.3-alpine3.23、redis:8.6.2-alpine、Docker/Docker Compose、nginx:1.25-alpine

二、完整目录结构

./backend/
├── gateway/
│   ├── cmd/
│   │   └── main.go
│   ├── internal/
│   │   ├── config/
│   │   │   └── config.go
│   │   ├── ws/
│   │   │   ├── hub.go
│   │   │   ├── client.go
│   │   │   └── message.go
│   │   └── router/
│   │       └── router.go
│   ├── go.mod
│   └── Dockerfile
├── services/
│   └── user-svc/
│       ├── cmd/
│       │   └── main.go
│       ├── internal/
│       │   ├── config/
│       │   │   └── config.go
│       │   ├── domain/
│       │   │   └── user.go
│       │   ├── repository/
│       │   │   └── repo.go
│       │   ├── service/
│       │   │   └── service.go
│       │   └── grpcserver/
│       │       └── server.go
│       ├── proto/
│       │   └── user.proto
│       ├── migrations/
│       │   └── 001_init.sql
│       ├── go.mod
│       └── Dockerfile
├── shared/
│   ├── proto/
│   │   ├── common/
│   │   │   └── common.proto
│   │   └── generate.go
│   └── pkg/
│       ├── logger/
│       │   └── logger.go
│       ├── errors/
│       │   └── errors.go
│       ├── database/
│       │   └── postgres.go
│       └── cache/
│           └── redis.go
├── scripts/
│   ├── dev-start.sh          # 纯 Docker 启动脚本
│   ├── gen-proto.sh          # Docker 内编译 proto
│   └── docker-proto-builder/ # Protoc 编译容器配置
│       └── Dockerfile
├── docker-compose.yml        # 全服务编排(含 proto 编译、Go 构建)
├── docker-compose.dev.yml    # 开发模式编排(挂载源码、热更新)
├── Makefile                  # 封装 Docker 命令(兼容无宿主机 Make 环境)
└── README.md                 # 纯 Docker 环境使用说明

三、核心说明

不允污染宿主机,任何操作都只能通过 Docker 进行,绝对不在本地执行任何命令,不依赖本地环境,纯容器运行。

以上需求明白后,先创建基础骨架:包含 nginx、gateway、services/user-svc、shared、scripts、docker-compose.yml、Makefile只创建目录结构不写代码让后等待我下一步指令。