Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

3.5 KiB

EMP 隔离测试环境部署说明

这套部署方案用于“服务器不放源码,只运行本地打好的 Docker 镜像包”的场景。

目录说明

本地项目中:

deploy/isolated/
  build-package.ps1          # Windows 本地打包
  build-package.sh           # Linux / macOS / WSL 本地打包
  docker-compose.runtime.yml # 服务器运行用 compose 模板
  .env.example               # 服务器运行配置模板
  install.sh                 # 服务器安装脚本
  dockerfiles/               # 本地构建镜像用 Dockerfile
  nginx/admin.conf           # 前端 nginx 代理配置

打包后产物在:

deploy/isolated/dist/emp-test-runtime-时间戳.tar.gz

服务器解压后只需要:

docker-compose.yml
.env
install.sh
images.tar
README.md

本地打包

Windows PowerShell:

cd E:\emp\deploy\isolated
.\build-package.ps1

Linux / WSL:

cd /path/to/emp/deploy/isolated
sh build-package.sh

如果本机已经构建好所有业务镜像,只想重新生成安装包:

SKIP_BUILD=1 sh build-package.sh

国内 npm 慢时可以指定源:

NPM_REGISTRY=https://registry.npmmirror.com sh build-package.sh

默认会把 MySQL、Redis、Kafka、TDengine、Nacos 的中间件镜像一起打进 images.tar,服务器不需要访问 Docker Hub。

上传服务器

scp deploy/isolated/dist/emp-test-runtime-*.tar.gz root@服务器IP:/opt/

服务器执行:

mkdir -p /opt/emp-test
tar -xzf /opt/emp-test-runtime-*.tar.gz -C /opt/emp-test --strip-components=1
cd /opt/emp-test
cp .env.example .env
vi .env
sh install.sh

必改配置

.env 中至少要改这些:

PUBLIC_HOST=服务器外网IP或域名
MYSQL_ROOT_PASSWORD=强密码
DB_PWD=同 MYSQL_ROOT_PASSWORD
SIMULATOR_DB_PASSWORD=同 MYSQL_ROOT_PASSWORD
REDIS_PASSWORD=强密码
PDF_FRONTEND_BASE_URL=http://服务器外网IP:4081

如果端口被宿主机其他项目占用,改这些端口:

ADMIN_HOST_PORT=4081
GATEWAY_HOST_PORT=9000
MYSQL_HOST_PORT=13306
KAFKA_HOST_PORT=19094
TDENGINE_REST_HOST_PORT=6041

对外连接

MySQL 8.0:

host: 服务器外网IP
port: MYSQL_HOST_PORT,默认 13306
user: root
password: MYSQL_ROOT_PASSWORD
database: emp

Kafka:

bootstrap.servers=PUBLIC_HOST:KAFKA_HOST_PORT
默认端口:19094

TDengine REST:

http://PUBLIC_HOST:TDENGINE_REST_HOST_PORT
默认端口:6041

Nacos:

http://PUBLIC_HOST:NACOS_HOST_PORT/nacos
默认账号:nacos
默认密码:nacos

前端:

http://PUBLIC_HOST:ADMIN_HOST_PORT

数据导入

MySQL 导入示例:

docker compose --env-file .env -f docker-compose.yml -p emp-test exec -T mysql \
  mysql -uroot -p"$MYSQL_ROOT_PASSWORD" emp < emp.sql

TDengine 导入建议仍使用 taosdump

docker cp td_dump_dir emp-test-tdengine-1:/tmp/td_dump
docker compose --env-file .env -f docker-compose.yml -p emp-test exec tdengine \
  taosdump -u root -p"$TDENGINE_PWD" -i /tmp/td_dump

常用命令

查看状态:

docker compose --env-file .env -f docker-compose.yml -p emp-test ps

看日志:

docker compose --env-file .env -f docker-compose.yml -p emp-test logs -f emp-gateway

停止:

docker compose --env-file .env -f docker-compose.yml -p emp-test down

停止并删除数据卷:

docker compose --env-file .env -f docker-compose.yml -p emp-test down -v