79 lines
1.9 KiB
Bash
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 |