#!/bin/bash # Deploy script for backserver to 101.200.154.78 # Usage: ./deploy.sh # Configuration SERVER_HOST="101.200.154.78" SERVER_USER="root" DEPLOY_PATH="/opt/backserver" CONTAINER_NAME="backserver-app" echo "Starting deployment to $SERVER_HOST..." # Build the Docker image locally echo "Building Docker image..." docker build -t backserver:latest . if [ $? -ne 0 ]; then echo "Docker build failed!" exit 1 fi # Save the image to a tar file echo "Saving Docker image to tar file..." docker save backserver:latest > backserver.tar # Transfer files to server echo "Transferring files to server..." scp backserver.tar docker-compose.yml $SERVER_USER@$SERVER_HOST:$DEPLOY_PATH/ if [ $? -ne 0 ]; then echo "File transfer failed!" exit 1 fi # Execute deployment commands on server echo "Executing deployment on server..." ssh $SERVER_USER@$SERVER_HOST << EOF cd $DEPLOY_PATH # Stop existing container docker-compose down # Load new image docker load < backserver.tar # Start new container docker-compose up -d # Clean up rm backserver.tar # Show status docker-compose ps docker logs $CONTAINER_NAME --tail 20 EOF if [ $? -eq 0 ]; then echo "Deployment completed successfully!" echo "Application should be available at http://$SERVER_HOST:8080" else echo "Deployment failed!" exit 1 fi # Clean up local tar file rm backserver.tar echo "Deployment process finished."