| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/bin/bash
- # Jenkins 部署脚本
- set -e
- echo "开始部署 WeIndex 服务..."
- # 构建 Docker 镜像
- echo "构建 Docker 镜像..."
- docker build -t weindex:latest .
- # 停止并删除旧容器(忽略不存在的容器错误)
- echo "停止旧容器..."
- docker stop weindex-web 2>/dev/null || true
- docker rm weindex-web 2>/dev/null || true
- docker stop weindex-task 2>/dev/null || true
- docker rm weindex-task 2>/dev/null || true
- # 如果端口被占用,尝试停止占用该端口的容器
- echo "检查端口占用情况..."
- CONFLICTING_CONTAINER=$(docker ps -q --filter "publish=8501")
- if [ ! -z "$CONFLICTING_CONTAINER" ]; then
- echo "发现占用8501端口的容器,正在停止..."
- docker stop $CONFLICTING_CONTAINER
- fi
- # 启动 Web 服务容器
- echo "启动 Web 服务容器..."
- docker run -d \
- --name weindex-web \
- --restart unless-stopped \
- -p 8501:8501 \
- -v $(pwd)/logs:/app/logs \
- --env-file .env \
- weindex:latest \
- streamlit run dashboard/app.py --server.address=0.0.0.0 --server.port=8501
- # 启动定时任务容器(运行main.py中的定时任务)
- echo "启动定时任务容器..."
- docker run -d \
- --name weindex-task \
- --restart unless-stopped \
- -v $(pwd)/logs:/app/logs \
- --env-file .env \
- weindex:latest \
- python -m app.main
- echo "部署完成!"
- # 显示容器状态
- echo "Web 服务容器状态:"
- docker ps | grep weindex-web || echo "Web 容器未运行"
- echo "定时任务容器状态:"
- docker ps | grep weindex-task || echo "任务容器未运行"
|