#!/bin/bash echo "开始部署 - $(date)" echo "开始部署您的项目..." # 1. 克隆项目代码 # echo "1. 克隆项目代码..." # git clone https://git.zhouxhere.com/wonderzhao/cola-web.git # 2. 进入项目目录 # echo "2. 进入项目目录..." # cd cola-web # 3. 安装依赖 # echo "3. 安装依赖..." # npm install # 4. 构建项目 echo "4. 构建项目..." npm run build # 5. 构建 Docker 镜像 echo "5. 构建 Docker 镜像..." docker build -t cola-web:latest . # 6. 保存镜像为 tar 文件 echo "6. 保存 Docker 镜像..." docker save cola-web:latest > cola-web.tar # 7. 传输文件到服务器 echo "7. 传输文件到服务器..." ssh -p 22 owner@192.168.1.199 scp -P 22 cola-web.tar owner@192.168.1.199:web/ # 8. 在远程服务器上执行部署 echo "8. 在远程服务器上执行部署..." ssh -p 22 owner@192.168.1.199 << EOF cd web sudo docker load < cola-web.tar sudo docker stop cola-web 2>/dev/null || true sudo docker rm cola-web 2>/dev/null || true sudo docker run -d \ --name cola-web \ -p 8090:80 \ --restart unless-stopped \ cola-web EOF # 9. 清理本地临时文件 echo "9. 清理本地临时文件..." rm cola-web.tar # 等待容器启动 echo "等待容器启动..." sleep 10 # 检查容器状态 ssh -p 22 owner@192.168.1.199 << EOF if! sudo docker ps | grep -q cola-web; then echo "错误:容器未正常运行" exit 1 fi # 检查应用是否响应 if! curl -s http://localhost:8090/ > /dev/null; then echo "错误:应用未正常响应" exit 1 fi EOF echo "部署完成!" # echo "部署完成!应用已在 http://${REMOTE_HOST}:8090 上运行" # 10. 检查部署状态 # echo "10. 检查部署状态..." ssh owner@192.168.1.199 "docker ps | grep cola-web" # 在另一个终端窗口查看日志 # tail -f deploy.log