ai_learn_node/scripts/deploy-docker.sh
caoyuchun be1dab20e9 feat: 添加 Jenkins Docker 部署配置
- 添加 Jenkinsfile 和 Jenkinsfile.docker 支持 Docker 构建
- 添加 Docker Compose 生产环境配置
- 添加后端 Dockerfile
- 添加 Docker 部署脚本
- 添加部署文档 (JENKINS_DEPLOY.md, DOCKER_DEPLOY.md, DOCKER_ISOLATION.md)
- 更新 nginx 配置支持生产环境部署
2026-01-14 14:33:58 +08:00

84 lines
1.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Docker 部署脚本 - 在远程服务器上执行
# 用法: ./deploy-docker.sh <部署目录>
set -e
DEPLOY_DIR=${1:-/opt/nginx/html/ai/current}
DOCKER_DIR="$DEPLOY_DIR/docker"
echo "开始 Docker 部署到: $DEPLOY_DIR"
# 检查部署目录是否存在
if [ ! -d "$DEPLOY_DIR" ]; then
echo "错误: 部署目录不存在: $DEPLOY_DIR"
exit 1
fi
# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
echo "错误: Docker 未安装"
exit 1
fi
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
echo "错误: docker-compose 未安装"
exit 1
fi
# 检查 docker-compose 命令(支持新版本的 docker compose
COMPOSE_CMD="docker-compose"
if ! command -v docker-compose &> /dev/null; then
COMPOSE_CMD="docker compose"
fi
# 进入 Docker 目录
if [ ! -d "$DOCKER_DIR" ]; then
echo "错误: Docker 配置目录不存在: $DOCKER_DIR"
exit 1
fi
cd "$DOCKER_DIR" || exit 1
# 停止旧容器(如果存在)
echo "停止旧容器..."
$COMPOSE_CMD down || true
# 构建并启动服务
echo "构建并启动 Docker 服务..."
$COMPOSE_CMD up -d --build
# 等待服务启动
echo "等待服务启动..."
sleep 5
# 检查服务状态
echo "检查服务状态..."
$COMPOSE_CMD ps
# 检查容器健康状态
echo "检查容器健康状态..."
if docker ps | grep -q ai-learning-nginx; then
echo "✅ Nginx 容器运行中"
else
echo "❌ Nginx 容器未运行"
exit 1
fi
if docker ps | grep -q ai-learning-backend; then
echo "✅ Backend 容器运行中"
else
echo "❌ Backend 容器未运行"
exit 1
fi
echo ""
echo "=========================================="
echo "Docker 部署完成!"
echo "=========================================="
echo "前端访问: http://180.76.180.105:8080"
echo "后端 API: http://180.76.180.105:3001"
echo "健康检查: http://180.76.180.105:8080/health"
echo "=========================================="