chore: update config for local dev and docker
All checks were successful
aiot-platform CI/CD / build-and-deploy (push) Successful in 8m26s

This commit is contained in:
lzh
2025-12-18 15:10:38 +08:00
parent 31c8f8c0a6
commit 527b9d7d44
2 changed files with 53 additions and 20 deletions

View File

@@ -31,10 +31,18 @@ jobs:
git clone --depth 1 "$GIT_URL" .
git log -1 --format='%h - %s'
# 2. 准备 Docker 网络 (用于容器间通信)
- name: Create Docker Network
# 2. 准备 Docker 网络 (使用 1Panel 默认网络)
# 假设 1Panel 创建的网络名为 1panel-network
# 如果不存在,尝试创建 aiot-net (兼容模式)
- name: Setup Network
run: |
docker network create aiot-net || true
if docker network inspect 1panel-network >/dev/null 2>&1; then
echo "NETWORK_NAME=1panel-network" >> $GITHUB_ENV
else
echo "1panel-network not found, creating aiot-net..."
docker network create aiot-net || true
echo "NETWORK_NAME=aiot-net" >> $GITHUB_ENV
fi
# 3. 构建并部署主服务 (Server)
- name: Build & Deploy Server
@@ -42,6 +50,14 @@ jobs:
env:
IMAGE_NAME: 'aiot-server'
CONTAINER_NAME: aiot-server
# 使用 1Panel 管理的实际容器名
MYSQL_HOST: '1Panel-mysql-28oP'
REDIS_HOST: '1Panel-redis-9iYV'
TDENGINE_HOST: '1Panel-tdengine-XGgv'
# 支持通过 Secrets 覆盖其他配置(如密码)
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD || '65p^VTPi9Qd+' }}
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD || '9kHXcZ1ojFsD' }}
TDENGINE_PASSWORD: ${{ secrets.TDENGINE_PASSWORD || 'taosdata' }}
run: |
# --- 构建 ---
SHORT_SHA=$(git log -1 --format='%h')
@@ -54,14 +70,22 @@ jobs:
# --- 部署 ---
echo "Deploying Server..."
echo "Config: MySQL=$MYSQL_HOST, Redis=$REDIS_HOST, TDE=$TDENGINE_HOST, Net=$NETWORK_NAME"
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true
# 注入环境变量,强制切换到 Docker 内网连接
docker run -d \
--name $CONTAINER_NAME \
--network aiot-net \
--network $NETWORK_NAME \
--restart always \
-p 48080:48080 \
-e MYSQL_HOST="$MYSQL_HOST" \
-e MYSQL_PASSWORD="$MYSQL_PASSWORD" \
-e REDIS_HOST="$REDIS_HOST" \
-e TDENGINE_HOST="$TDENGINE_HOST" \
-e TDENGINE_PASSWORD="$TDENGINE_PASSWORD" \
$([ -n "$REDIS_PASSWORD" ] && echo "-e REDIS_PASSWORD=$REDIS_PASSWORD" || echo "") \
"${IMAGE_NAME}:latest"
# 4. 构建并部署 IoT 网关 (Gateway)
@@ -70,6 +94,9 @@ jobs:
env:
IMAGE_NAME: 'aiot-gateway'
CONTAINER_NAME: aiot-gateway
# 使用 1Panel 管理的实际容器名
MYSQL_HOST: '1Panel-mysql-28oP'
REDIS_HOST: '1Panel-redis-9iYV'
run: |
# --- 构建 ---
SHORT_SHA=$(git log -1 --format='%h')
@@ -86,13 +113,14 @@ jobs:
docker rm $CONTAINER_NAME || true
# 覆盖 RPC 地址,使其指向 aiot-server 容器
# 假设 application.yaml 中配置的是 viewshanghai.iot.gateway.rpc.url
# 同时注入数据库和 Redis 配置
docker run -d \
--name $CONTAINER_NAME \
--network aiot-net \
--network $NETWORK_NAME \
--restart always \
-p 1883:1883 \
-p 8092:8092 \
-e VIEWSHANGHAI_IOT_GATEWAY_RPC_URL="http://aiot-server:48080" \
-e MYSQL_HOST="$MYSQL_HOST" \
-e REDIS_HOST="$REDIS_HOST" \
"${IMAGE_NAME}:latest"