79 lines
2.0 KiB
Bash
79 lines
2.0 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 远程服务器配置
|
||
|
|
REMOTE_HOST="192.168.0.95"
|
||
|
|
REMOTE_USER="root"
|
||
|
|
REMOTE_PASSWORD="aiotagro"
|
||
|
|
REMOTE_DIR="/data/java/aiotagro-mini"
|
||
|
|
|
||
|
|
# 本地项目配置
|
||
|
|
PROJECT_DIR=$(pwd)
|
||
|
|
SERVER_MODULE="aagro-server"
|
||
|
|
TARGET_JAR="${SERVER_MODULE}/target/${SERVER_MODULE}.jar"
|
||
|
|
|
||
|
|
echo "开始部署项目到远程服务器..."
|
||
|
|
|
||
|
|
# 1. 清理并构建项目
|
||
|
|
echo "正在清理并构建项目..."
|
||
|
|
mvn clean package -Dmaven.test.skip=true
|
||
|
|
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "项目构建失败,退出部署"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "项目构建成功"
|
||
|
|
|
||
|
|
# 2. 检查目标jar文件是否存在
|
||
|
|
if [ ! -f "${TARGET_JAR}" ]; then
|
||
|
|
echo "目标jar文件不存在: ${TARGET_JAR}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 3. 在远程服务器上创建目录
|
||
|
|
echo "正在远程服务器上创建目录..."
|
||
|
|
sshpass -p "${REMOTE_PASSWORD}" ssh ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p ${REMOTE_DIR}"
|
||
|
|
|
||
|
|
# 4. 上传到远程服务器
|
||
|
|
echo "正在上传文件到远程服务器..."
|
||
|
|
sshpass -p "${REMOTE_PASSWORD}" scp ${TARGET_JAR} ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
|
||
|
|
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "文件上传失败"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "文件上传成功"
|
||
|
|
|
||
|
|
# 5. 上传Dockerfile到远程服务器
|
||
|
|
echo "正在上传Dockerfile到远程服务器..."
|
||
|
|
sshpass -p "${REMOTE_PASSWORD}" scp ${SERVER_MODULE}/Dockerfile ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
|
||
|
|
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "Dockerfile上传失败"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "Dockerfile上传成功"
|
||
|
|
|
||
|
|
# 6. 在远程服务器上构建Docker镜像并运行容器
|
||
|
|
echo "正在远程服务器上构建Docker镜像并运行容器..."
|
||
|
|
sshpass -p "${REMOTE_PASSWORD}" ssh ${REMOTE_USER}@${REMOTE_HOST} "
|
||
|
|
cd ${REMOTE_DIR} && \
|
||
|
|
docker build -t aagro-server . && \
|
||
|
|
docker stop aagro-server-container 2>/dev/null && \
|
||
|
|
docker rm aagro-server-container 2>/dev/null && \
|
||
|
|
docker run -d \
|
||
|
|
--name aagro-server-container \
|
||
|
|
--restart always \
|
||
|
|
-p 48080:48080 \
|
||
|
|
aagro-server
|
||
|
|
"
|
||
|
|
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "远程Docker操作失败"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "项目部署成功!"
|
||
|
|
echo "访问地址: http://${REMOTE_HOST}:48080"
|