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

77 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一、前言
我需要一个单机多服务部署的后台微服务架构。
> 执行目标:基于纯 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只创建目录结构不写代码让后等待我下一步指令。