Fertig
This commit is contained in:
171
deploy.sh
Normal file
171
deploy.sh
Normal file
@@ -0,0 +1,171 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Deployment script for IIT Welders
|
||||
# This script handles the deployment process
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
APP_NAME="iitwelders"
|
||||
DOCKER_COMPOSE_FILE="docker-compose.yml"
|
||||
DOCKER_COMPOSE_DEV_FILE="docker-compose.dev.yml"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Function to print colored output
|
||||
print_status() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Function to check if Docker is running
|
||||
check_docker() {
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
print_error "Docker is not running. Please start Docker and try again."
|
||||
exit 1
|
||||
fi
|
||||
print_success "Docker is running"
|
||||
}
|
||||
|
||||
# Function to build and deploy
|
||||
deploy() {
|
||||
local environment=${1:-production}
|
||||
|
||||
print_status "Starting deployment for $environment environment..."
|
||||
|
||||
# Check Docker
|
||||
check_docker
|
||||
|
||||
# Stop existing containers
|
||||
print_status "Stopping existing containers..."
|
||||
if [ "$environment" = "development" ]; then
|
||||
docker-compose -f $DOCKER_COMPOSE_DEV_FILE down || true
|
||||
else
|
||||
docker-compose -f $DOCKER_COMPOSE_FILE down || true
|
||||
fi
|
||||
|
||||
# Remove old images
|
||||
print_status "Cleaning up old images..."
|
||||
docker image prune -f
|
||||
|
||||
# Build and start containers
|
||||
print_status "Building and starting containers..."
|
||||
if [ "$environment" = "development" ]; then
|
||||
docker-compose -f $DOCKER_COMPOSE_DEV_FILE up --build -d
|
||||
else
|
||||
docker-compose -f $DOCKER_COMPOSE_FILE up --build -d
|
||||
fi
|
||||
|
||||
# Wait for application to start
|
||||
print_status "Waiting for application to start..."
|
||||
sleep 10
|
||||
|
||||
# Run health check
|
||||
if [ -f "./healthcheck.sh" ]; then
|
||||
print_status "Running health check..."
|
||||
chmod +x ./healthcheck.sh
|
||||
./healthcheck.sh
|
||||
fi
|
||||
|
||||
print_success "Deployment completed successfully!"
|
||||
|
||||
if [ "$environment" = "development" ]; then
|
||||
print_status "Application is available at: http://localhost:8080"
|
||||
else
|
||||
print_status "Application is available at: http://localhost:3000"
|
||||
print_status "With Nginx at: http://localhost"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to show logs
|
||||
show_logs() {
|
||||
local environment=${1:-production}
|
||||
|
||||
if [ "$environment" = "development" ]; then
|
||||
docker-compose -f $DOCKER_COMPOSE_DEV_FILE logs -f
|
||||
else
|
||||
docker-compose -f $DOCKER_COMPOSE_FILE logs -f
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to stop application
|
||||
stop() {
|
||||
local environment=${1:-production}
|
||||
|
||||
print_status "Stopping $environment environment..."
|
||||
|
||||
if [ "$environment" = "development" ]; then
|
||||
docker-compose -f $DOCKER_COMPOSE_DEV_FILE down
|
||||
else
|
||||
docker-compose -f $DOCKER_COMPOSE_FILE down
|
||||
fi
|
||||
|
||||
print_success "Application stopped"
|
||||
}
|
||||
|
||||
# Function to show status
|
||||
status() {
|
||||
print_status "Container status:"
|
||||
docker ps --filter "name=$APP_NAME" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
||||
}
|
||||
|
||||
# Main script logic
|
||||
case "${1:-deploy}" in
|
||||
"deploy")
|
||||
deploy "${2:-production}"
|
||||
;;
|
||||
"dev")
|
||||
deploy "development"
|
||||
;;
|
||||
"logs")
|
||||
show_logs "${2:-production}"
|
||||
;;
|
||||
"stop")
|
||||
stop "${2:-production}"
|
||||
;;
|
||||
"status")
|
||||
status
|
||||
;;
|
||||
"help"|"-h"|"--help")
|
||||
echo "Usage: $0 [command] [environment]"
|
||||
echo ""
|
||||
echo "Commands:"
|
||||
echo " deploy Deploy to production (default)"
|
||||
echo " dev Deploy to development"
|
||||
echo " logs Show application logs"
|
||||
echo " stop Stop application"
|
||||
echo " status Show container status"
|
||||
echo " help Show this help message"
|
||||
echo ""
|
||||
echo "Environments:"
|
||||
echo " production Production environment (default)"
|
||||
echo " development Development environment"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 deploy production"
|
||||
echo " $0 dev"
|
||||
echo " $0 logs development"
|
||||
echo " $0 stop"
|
||||
;;
|
||||
*)
|
||||
print_error "Unknown command: $1"
|
||||
echo "Use '$0 help' for usage information"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user