# shopTNT开源商城系统-部署 **Repository Path**: bbc-se/deploy ## Basic Information - **Project Name**: shopTNT开源商城系统-部署 - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: 8.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-06-05 - **Last Updated**: 2026-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ShopTNT 开源版部署说明 本工程通过 Docker Compose 快速部署 ShopTNT 开源版,包括基础设施、后端服务和 UI。 ## 目录结构 ```text deploy/ ├── deploy.sh ├── docker-compose.yml ├── .env.example ├── service/ │ ├── docker-compose.yml │ ├── docker-compose.git.yml │ └── docker-compose.native.yml ├── ui/ │ └── docker-compose.yml └── config/ ├── mysql/ ├── es/ ├── seata/ └── nginx.conf ``` | 路径 | 作用 | | --- | --- | | `deploy.sh` | 统一部署、停止和查看日志。 | | `docker-compose.yml` | MySQL、Redis、RabbitMQ、Elasticsearch、XXL-JOB、Seata 等基础设施。 | | `service/docker-compose.yml` | ShopTNT 后端服务。 | | `ui/docker-compose.yml` | ShopTNT 前端 UI;未配置时一键部署会自动跳过。 | | `.env.example` | 默认镜像及配置中心参数。 | | `config/` | 基础设施配置及 MySQL 初始化 SQL。 | 基础设施和业务容器统一加入 `shoptnt-middle` 网络,容器统一使用 `shoptnt-*` 名称。 ## 部署步骤 ### 第一步:安装部署环境(已安装可跳过) 部署前需要准备 Git、Docker 和 Docker Compose。先执行以下命令检查: ```bash git --version docker --version docker compose version || docker-compose --version docker info ``` 以上命令均能正常输出时,直接进入第二步。 #### Ubuntu / Debian ```bash # 安装 Git 及 Docker 仓库依赖 sudo apt update sudo apt install -y lvm2 git ca-certificates curl gnupg lsb-release # 添加 Docker 软件源 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \ | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list # 安装并启动 Docker sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable docker sudo systemctl start docker ``` #### 安装 Docker Compose Ubuntu 和 Debian 均可执行: ```bash sudo curl -L https://shoptnt-statics.oss-cn-beijing.aliyuncs.com/docker-compose \ -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose version ``` 如果使用普通用户部署,需要为当前用户授予 Docker 权限,执行后重新登录服务器: ```bash sudo usermod -aG docker "$USER" ``` ### 第二步:下载并一键部署 ```bash git clone https://gitee.com/bbc-se/deploy.git --branch 8.0 cd deploy chmod +x deploy.sh ./deploy.sh ``` 选择: ```text 1 一键部署 ShopTNT ``` 首次运行会根据 `.env.example` 自动创建 `.env`,无需填写账号或密码。默认使用: ```text 后端镜像 harbor.shoptnt.cn/shoptnt:8.0 配置中心 https://gitee.com/bbc-se/config.git 配置分支 8.0 运行环境 dev ``` 官方镜像和配置仓库均可直接访问,默认部署不会要求登录镜像仓库,也不会要求选择配置模式。 ## 部署菜单 ```text ======================================== ShopTNT 开源版统一部署工具 ======================================== 1 一键部署 ShopTNT 2 部署基础设施 3 部署后端服务 4 部署 UI 5 停止服务 6 查看日志 0 退出 ---------------------------------------- ``` 一键部署会依次启动基础设施和后端服务;仓库中存在 `ui/docker-compose.yml` 时继续部署 UI,否则自动跳过。 ## 自定义部署参数 默认配置保存在部署目录的 `.env` 中。普通用户无需修改,直接一键部署即可;只有以下场景需要自定义: | 使用场景 | 需要修改的参数 | | --- | --- | | 使用自己的镜像仓库 | `IMAGE_REGISTRY`、`SERVICE_VERSION` | | 使用自己的 Git 配置仓库 | `CONFIG_GIT_URI`、`CONFIG_GIT_LABEL` | | 切换开发或生产环境 | `CONFIG_PROFILE` | | 配置文件位于 Git 子目录 | `CONFIG_GIT_SEARCH_PATHS` | | 使用服务器本地配置文件 | `CONFIG_MODE`、`CONFIG_PATH` | | 调整后端 JVM 内存 | `JAVA_OPTS` | 首次运行前需要提前修改时,可以手动创建 `.env`: ```bash cp .env.example .env ``` 后续所有修改都编辑 `.env`,不要直接修改 `.env.example`。升级部署程序时,`.env` 不会被 Git 覆盖。 ### 更换镜像仓库 默认使用 ShopTNT 官方镜像: ```dotenv IMAGE_REGISTRY=harbor.shoptnt.cn/shoptnt SERVICE_VERSION=8.0 ``` 使用自己的镜像仓库时,将 `IMAGE_REGISTRY` 改为镜像所在的项目路径: ```dotenv IMAGE_REGISTRY=registry.customer.com/shoptnt SERVICE_VERSION=8.0 ``` 部署程序会在该路径下查找 `config-server`、`base-api`、`buyer-api` 等镜像。公开仓库可直接部署;私有仓库需要提前登录: ```bash docker login registry.customer.com ``` 修改后重新运行 `./deploy.sh`,选择“部署后端服务”即可。 ### 更换 Git 配置仓库 默认使用无需认证的公开配置仓库: ```dotenv CONFIG_MODE=git CONFIG_GIT_URI=https://gitee.com/bbc-se/config.git CONFIG_GIT_LABEL=8.0 CONFIG_GIT_SEARCH_PATHS= CONFIG_PROFILE=dev ``` 参数含义: | 参数 | 示例 | 说明 | | --- | --- | --- | | `CONFIG_GIT_URI` | `https://gitee.com/bbc-se/config.git` | 配置仓库地址。 | | `CONFIG_GIT_LABEL` | `8.0` | Git 分支或标签。 | | `CONFIG_PROFILE` | `dev` | 配置环境,对应配置文件名中的环境部分。 | | `CONFIG_GIT_SEARCH_PATHS` | `config/bbc` | 配置文件位于仓库子目录时填写;位于根目录时留空。 | 例如请求 `base-api` 的 `dev` 环境配置时,Config Server 会读取 `base-api-dev.yml`。`CONFIG_GIT_LABEL=8.0` 表示读取 Git 的 `8.0` 分支,它与运行环境 `CONFIG_PROFILE=dev` 不是一回事。 使用自己的公开仓库时,只需要修改仓库地址和分支。私有仓库还需要配置账号和访问令牌: ```dotenv CONFIG_GIT_USERNAME=deploy-user CONFIG_GIT_PASSWORD=replace-with-access-token ``` `.env` 可能包含凭据,已被 `.gitignore` 忽略,不要提交到 Git。 ### 使用本地配置文件 不希望通过 Git 管理配置时,可以让 Config Server 直接读取服务器目录: ```dotenv CONFIG_MODE=native CONFIG_PATH=/data/shoptnt/config CONFIG_PROFILE=dev ``` `CONFIG_PATH` 必须是部署服务器上的绝对路径。目录需要提前创建,并包含当前环境所需的配置文件,例如: ```text /data/shoptnt/config/ ├── application-dev.yml ├── base-api-dev.yml ├── buyer-api-dev.yml ├── seller-api-dev.yml ├── manager-api-dev.yml ├── consumer-dev.yml └── sba-server-dev.yml ``` 该目录会以只读方式挂载到 Config Server。修改本地配置后,需要重启 Config Server 和使用该配置的后端服务。 ### 切换运行环境 默认使用开发环境: ```dotenv CONFIG_PROFILE=dev ``` 部署生产环境时改为: ```dotenv CONFIG_PROFILE=prod ``` 切换前需要确认 Git 仓库或本地配置目录中存在对应的 `*-prod.yml` 文件,否则 Config Server 无法返回生产配置。 ### 调整 JVM 内存 所有后端容器默认使用: ```dotenv JAVA_OPTS=-Xms256m -Xmx512m -Xss1m ``` 可根据服务器内存统一调整。例如: ```dotenv JAVA_OPTS=-Xms512m -Xmx1024m -Xss1m ``` 修改 `IMAGE_REGISTRY`、`SERVICE_VERSION`、配置模式或 JVM 参数后,重新执行“部署后端服务”。仅修改 Git 或本地业务配置内容时,需要重启 Config Server 和受影响的后端服务。 ## 常用命令 ```bash ./deploy.sh # 打开交互菜单 ./deploy.sh all # 一键部署 ./deploy.sh infrastructure # 只部署基础设施 ./deploy.sh service # 只部署后端服务 ./deploy.sh ui # 只部署 UI ./deploy.sh status # 查看全部服务状态 ./deploy.sh logs service # 查看全部后端日志 ./deploy.sh logs service base-api # 查看指定后端服务日志 ./deploy.sh logs infrastructure mysql ./deploy.sh down # 停止全部服务,保留数据 ``` ## 服务镜像 后端默认从 `${IMAGE_REGISTRY}` 使用以下镜像: ```text config-server:${SERVICE_VERSION} sba-server:${SERVICE_VERSION} base-api:${SERVICE_VERSION} buyer-api:${SERVICE_VERSION} seller-api:${SERVICE_VERSION} manager-api:${SERVICE_VERSION} consumer:${SERVICE_VERSION} ``` 镜像只包含程序 JAR。Git 仓库参数或本地配置目录由 `.env` 在容器启动时传给 Config Server,修改外部配置不需要重新构建镜像。 ## 数据目录 持久化数据位于: ```text ../data/shoptnt/ ``` 执行停止服务不会删除该目录。MySQL 初始化 SQL 只会在 MySQL 数据目录为空的首次启动时执行。