# 用户服务部署使用手册 ## 一、概述 本文档介绍用户服务系统的创建、构建和部署流程,涉及`create_api.py`和`deploy/deploy.sh`两个核心脚本的使用方法,帮助使用者快速搭建和部署用户服务相关的API模块。 ## 二、环境准备 1. 确保系统安装以下工具: - Python 3.x - Docker - Docker Compose 2. 克隆代码库后,进入项目根目录: ```bash cd user_service ``` ## 三、核心脚本功能说明 ### 1. 创建新API服务(create_api.py) 用于基于模板快速创建新的API服务模块,自动生成目录结构和配置文件。 #### 使用方法: 1. 编辑`create_api.py`文件,设置`a`(功能名)和`b`(次功能名)参数: ```python a = "aaaa" # 主功能名 b = "bbbb" # 次功能名(可选,如果不需要,留空) ``` 2. 执行脚本: ```bash sudo python3 create_api.py ``` #### 功能说明: - 自动在`deploy/api`目录下创建新服务目录(格式:`api_{a}_{b}` 或 `api_{a}`) - 复制`api_template`模板文件并替换其中的占位符 - 生成对应的`docker-compose.{a}.{b}.yaml`或`docker-compose.{a}.yaml`文件 - 自动修改`release.sh`、`init.py`和`README.md`中的服务标识 ### 2. 部署服务(deploy/deploy.sh) 用于停止现有服务、构建API并启动新的Docker Compose编排。 #### 使用方法: ```bash cd deploy sudo sh deploy.sh ``` #### 功能说明: 1. **步骤1:停止现有服务** - 停止`docker-compose.yaml`定义的`user_service`项目 2. **步骤2:构建所有API服务** - 遍历`./api`目录下的所有服务 - 执行每个服务的`release.sh`脚本 - 若构建失败则终止部署流程 3. **步骤3:启动新服务** - 使用`docker-compose.yaml`启动服务 - 项目名称为`user_service` #### 配置说明: 脚本开头可修改以下配置参数: ```bash COMPOSE_PROJECT_NAME="user_service" # Docker Compose项目名称 DOCKER_COMPOSE_FILE="./docker-compose.yaml" # 配置文件路径 API_DIR="./api" # API服务所在目录 ``` ## 四、完整工作流程 1. **创建新API服务**: ```bash # 编辑create_api.py设置功能名 sudo python3 create_api.py ``` 2. **开发API功能**: - 在生成的`deploy/api/api_{a}_{b}`或`deploy/api/api_{a}`目录中编写代码(如`main.go`) - 根据需要修改`init.py`中的初始化逻辑 3. **构建服务镜像**: ```bash python3 build.py ``` 4. **部署服务**: ```bash cd deploy ./deploy.sh ``` ## 五、常见问题处理 1. **权限错误**: - 执行脚本时若出现`Permission denied`,尝试添加执行权限: ```bash chmod +x deploy/deploy.sh ``` - 或使用`sudo`运行相关命令 2. **镜像构建失败**: - 检查`release.sh`中的镜像名称和构建命令是否正确 - 确保Docker服务正常运行:`systemctl status docker` 3. **服务启动失败**: - 检查`docker-compose.yaml`配置是否正确 - 查看容器日志排查问题:`docker logs <容器名>` 4. **端口冲突**: - 若启动时提示端口被占用,修改`init.py`中的端口映射配置 ## 六、服务目录结构说明 成功创建并部署后,项目主要目录结构如下: ``` user_service_副本/ ├── deploy/ │ ├── api/ # 所有API服务目录 │ │ ├── api_login/ # 登录服务 │ │ ├── api_register/ # 注册服务 │ │ └── ... # 其他API服务 │ ├── docker-compose.yaml # 服务编排配置 │ └── deploy.sh # 部署脚本 └── create_api.py # 创建新API的脚本 ```