69 lines
1.8 KiB
Bash
69 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# 加载配置
|
|
if [ -f "./deploy.config.sh" ]; then
|
|
source ./deploy.config.sh
|
|
else
|
|
echo "配置文件 deploy.config.sh 不存在"
|
|
exit 1
|
|
fi
|
|
|
|
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 ${DOCKER_IMAGE_NAME} .
|
|
|
|
# # 6. 保存镜像为 tar 文件
|
|
# echo "6. 保存 Docker 镜像..."
|
|
# docker save ${DOCKER_IMAGE_NAME} > ${DOCKER_IMAGE_NAME}.tar
|
|
|
|
# 7. 传输文件到服务器
|
|
# echo "7. 传输文件到服务器..."
|
|
# ssh -p 22 owner@192.168.1.199
|
|
# scp -v -P ${REMOTE_PORT} ${DOCKER_IMAGE_NAME}.tar ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/
|
|
|
|
# 8. 在远程服务器上执行部署
|
|
echo "8. 在远程服务器上执行部署..."
|
|
ssh -p ${REMOTE_PORT} ${REMOTE_USER}@${REMOTE_HOST} << EOF
|
|
set -e # 遇到错误立即退出
|
|
|
|
echo "===== 开始执行远程部署 ====="
|
|
cd ${REMOTE_PATH}
|
|
docker load < ${DOCKER_IMAGE_NAME}.tar
|
|
docker stop ${DOCKER_CONTAINER_NAME} 2>/dev/null || true
|
|
docker rm ${DOCKER_CONTAINER_NAME} 2>/dev/null || true
|
|
docker run -d \
|
|
--name ${DOCKER_CONTAINER_NAME} \
|
|
-p ${APP_PORT}:80 \
|
|
--restart unless-stopped \
|
|
${DOCKER_IMAGE_NAME}
|
|
EOF
|
|
|
|
echo "部署完成!"
|
|
# echo "部署完成!"
|
|
|
|
# 10. 检查部署状态
|
|
# echo "10. 检查部署状态..."
|
|
# ssh owner@192.168.1.199 "docker ps | grep cola-web"
|
|
|
|
# 在另一个终端窗口查看日志
|
|
# tail -f deploy.log |