1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- APP_NAME="auth-service"
- SERVER_IP="150.158.176.67"
- SERVER_USER="ubuntu"
- SERVER_SSH_PORT="22"
- SERVER_DEPLOY_DIR="/docker/services/$APP_NAME"
- SERVER_DEPLOY_APP="$SERVER_DEPLOY_DIR/app"
- SERVER_DEPLOY_ENV="$SERVER_DEPLOY_DIR/.env"
- SERVER_DEPLOY_DOCKER_FILE="$SERVER_DEPLOY_DIR/Dockerfile"
- SERVER_DOCKER_COMPOSE_DIR="/docker"
- OUTPUT_APP="./app"
- OUTPUT_ENV="./.env"
- OUTPUT_DOCKERFILE="./Dockerfile"
- # 本地打包
- bash ./build.sh
- # 检查远程目录是否存在
- ssh -p $SERVER_SSH_PORT $SERVER_USER@$SERVER_IP \
- "
- if [ ! -d ${SERVER_DEPLOY_DIR} ]; then
- sudo mkdir -p ${SERVER_DEPLOY_DIR};
- fi
- "
- # 删除app文件
- ssh -p $SERVER_SSH_PORT $SERVER_USER@$SERVER_IP \
- "
- sudo rm -rf $SERVER_DEPLOY_APP;
- "
- # 将应用文件上传到服务器(使用rsync+sudo)
- rsync -avz -e "ssh -p $SERVER_SSH_PORT" \
- $OUTPUT_APP \
- $SERVER_USER@$SERVER_IP:$SERVER_DEPLOY_APP \
- --rsync-path="sudo rsync"
- # 将环境文件上传到服务器
- rsync -avz -e "ssh -p $SERVER_SSH_PORT" \
- $OUTPUT_ENV \
- $SERVER_USER@$SERVER_IP:$SERVER_DEPLOY_ENV \
- --rsync-path="sudo rsync"
- # 将Dockerfile上传到服务器
- rsync -avz -e "ssh -p $SERVER_SSH_PORT" \
- $OUTPUT_DOCKERFILE \
- $SERVER_USER@$SERVER_IP:$SERVER_DEPLOY_DOCKER_FILE \
- --rsync-path="sudo rsync"
- # # 将文件上传到服务器
- # scp -r -P $SERVER_SSH_PORT \
- # $OUTPUT_APP \
- # $SERVER_USER@$SERVER_IP:$SERVER_DEPLOY_APP
- # scp -r -P $SERVER_SSH_PORT \
- # $OUTPUT_ENV \
- # $SERVER_USER@$SERVER_IP:$SERVER_DEPLOY_ENV
- # scp -r -P $SERVER_SSH_PORT \
- # $OUTPUT_DOCKERFILE \
- # $SERVER_USER@$SERVER_IP:$SERVER_DEPLOY_DOCKER_FILE
- # 构建Docker等部署
- ssh -p $SERVER_SSH_PORT $SERVER_USER@$SERVER_IP \
- "
- cd ${SERVER_DOCKER_COMPOSE_DIR};
- sudo docker build -t $APP_NAME --no-cache ${SERVER_DEPLOY_DIR}
- sudo docker compose stop $APP_NAME
- sudo docker compose rm -f $APP_NAME
- sudo docker compose up -d $APP_NAME
- "
|