cola-web/deploy.sh

79 lines
1.9 KiB
Bash

#!/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