README.md 内容涵盖了项目简介、目录结构说明和基本使用方法,适合作为该项目的入门文档。
# Cloud Naive KVStore
这是一个基于 Go 编写的轻量级键值存储服务,
1)具备Web UI、用户认证、TTL 支持、HTTPS 安全访问、Docker 编排部署等功能,
2)目标:学习云原生应用开发和涉及技术的原理。
---
## 📁 项目目录结构
```text
chap5/
├── build/ # 构建产物目录(如编译后的可执行文件)
├── cmd/kvstore/ # 主程序入口(main.go)
├── config/ # 配置管理
│ ├── config.json # 应用主配置文件
│ ├── locales/ # 国际化语言文件
│ └── nginx/ # Nginx 配置
│ ├── certs/ # HTTPS 证书目录
│ ├── Dockerfile.nginx # Nginx 容器构建文件
│ └── nginx.conf # Nginx 主配置
├── data/ # 运行时数据(数据库文件、用户信息)
├── docker/ # Docker 配置,包括 Compose 和 Dockerfile
├── docs/ # 项目相关文档(拓扑、HTTPS、健康检查等)
├── internal/ # 核心逻辑模块(KV存储、认证、配置、日志等)
├── scripts/ # 辅助脚本(构建、启动、证书生成等)
└── web/ # 前端页面和模板(静态资源与 HTML 模板)- 支持键值存储、编辑和 TTL 设置
- 用户登录、注册与会话管理
- Web UI 交互界面
- Docker Compose 快速部署
- Nginx 代理,支持 HTTPS 加密传输
- 健康检查与 pprof 调试接口
cd chap5/docker
# 镜像拉取
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/ubuntu:20.04
# 镜像重命名
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/ubuntu:20.04 docker.io/library/ubuntu:20.04
# 容器构建 & 运行: -d 后台运行 detaching
docker compose down && docker compose up -d --build访问地址:
- Web UI: http://localhost
- API 接口: http://localhost:8080
- pprof: http://localhost:6060/debug/pprof/
docker compose down00-docker-kvstore-topology.md:Docker 网络拓扑、容器结构与内核交互图01-container-cloudnative-tech-overview.md:容器化与云原生技术演进(涵盖 Docker、Containerd、Kubernetes 和 Ansible 的关系与发展)99-app-support-https.md:HTTPS 支持与证书配置说明99-docker-compose.md:Docker Compose 详解文档99-docker-usage.md:Docker 使用技巧与命令集合99-app-healthcheck-failure.md:容器健康检查失败分析99-Go-Runtime-and-Linux-Syscalls-Implementation.md:Go 运行时与 Linux 系统调用关系概述
- 使用
internal/模块划分保持良好封装性 - 所有服务通过统一配置文件启动,路径为
config/config.json - HTTPS 证书存放于
config/nginx/certs/,可通过scripts/generate_cert.sh生成 - 日志与调试功能集成在
internal/logger与pprof接口中 - 多语言支持文件存放于
config/locales/目录
- Go 1.24.0+(具体查看go.mod文件)
kay@kay-vm:docker$ go version
go version go1.24.3 linux/amd64
kay@kay-vm:docker$- Docker & Docker Compose
kay@kay-vm:docker$ docker version
Client: Docker Engine - Community
Version: 28.1.1
API version: 1.49
Go version: go1.23.8
Git commit: 4eba377
Built: Fri Apr 18 09:52:18 2025
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 28.1.1
API version: 1.49 (minimum version 1.24)
Go version: go1.23.8
Git commit: 01f442b
Built: Fri Apr 18 09:52:18 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.27
GitCommit: 05044ec0a9a75232cad458027ca83437aae3f4da
runc:
Version: 1.2.5
GitCommit: v1.2.5-0-g59923ef
docker-init:
Version: 0.19.0
GitCommit: de40ad0
kay@kay-vm:docker$
kay@kay-vm:docker$
kay@kay-vm:docker$
kay@kay-vm:docker$
kay@kay-vm:docker$ docker compose version
Docker Compose version v2.35.1
kay@kay-vm:docker$- Nginx(通过容器构建, 见chap5/config/nginx/Dockerfile.nginx)
MIT License