用户服务部署使用手册

一、概述

本文档介绍用户服务系统的创建、构建和部署流程,涉及create_api.pydeploy/deploy.sh两个核心脚本的使用方法帮助使用者快速搭建和部署用户服务相关的API模块。

二、环境准备

  1. 确保系统安装以下工具:

    • Python 3.x
    • Docker
    • Docker Compose
  2. 克隆代码库后,进入项目根目录:

    cd user_service
    

三、核心脚本功能说明

1. 创建新API服务create_api.py

用于基于模板快速创建新的API服务模块自动生成目录结构和配置文件。

使用方法:

  1. 编辑create_api.py文件,设置a(功能名)和b(次功能名)参数:

    a = "aaaa"  # 主功能名
    b = "bbbb"          # 次功能名(可选,如果不需要,留空)
    
  2. 执行脚本:

    sudo python3 create_api.py
    

功能说明:

  • 自动在deploy/api目录下创建新服务目录(格式:api_{a}_{b}api_{a}
  • 复制api_template模板文件并替换其中的占位符
  • 生成对应的docker-compose.{a}.{b}.yamldocker-compose.{a}.yaml文件
  • 自动修改release.shinit.pyREADME.md中的服务标识

2. 部署服务deploy/deploy.sh

用于停止现有服务、构建API并启动新的Docker Compose编排。

使用方法:

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

配置说明:

脚本开头可修改以下配置参数:

COMPOSE_PROJECT_NAME="user_service"  # Docker Compose项目名称
DOCKER_COMPOSE_FILE="./docker-compose.yaml"  # 配置文件路径
API_DIR="./api"  # API服务所在目录

四、完整工作流程

  1. 创建新API服务

    # 编辑create_api.py设置功能名
    sudo python3 create_api.py
    
  2. 开发API功能

    • 在生成的deploy/api/api_{a}_{b}deploy/api/api_{a}目录中编写代码(如main.go
    • 根据需要修改init.py中的初始化逻辑
  3. 构建服务镜像

    python3 build.py
    
  4. 部署服务

    cd deploy
    ./deploy.sh
    

五、常见问题处理

  1. 权限错误

    • 执行脚本时若出现Permission denied,尝试添加执行权限:
      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的脚本
Description
No description provided
Readme 212 MiB
Languages
Go 45.6%
Python 35%
Shell 12.9%
PLpgSQL 6.5%