First commit
This commit is contained in:
53
deploy.sh
Normal file
53
deploy.sh
Normal file
@@ -0,0 +1,53 @@
|
||||
# Deployment script for production
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
DOCKER_REGISTRY="${DOCKER_REGISTRY:-your-registry.com}"
|
||||
IMAGE_NAME="${IMAGE_NAME:-homework-backend}"
|
||||
TAG="${TAG:-latest}"
|
||||
ENVIRONMENT="${ENVIRONMENT:-production}"
|
||||
|
||||
echo "🚀 Deploying Homework Backend to $ENVIRONMENT..."
|
||||
|
||||
# Build Docker image
|
||||
echo "🏗️ Building Docker image..."
|
||||
docker build -t $DOCKER_REGISTRY/$IMAGE_NAME:$TAG .
|
||||
|
||||
# Push to registry
|
||||
echo "📤 Pushing image to registry..."
|
||||
docker push $DOCKER_REGISTRY/$IMAGE_NAME:$TAG
|
||||
|
||||
# Deploy based on environment
|
||||
case $ENVIRONMENT in
|
||||
"staging")
|
||||
echo "🎭 Deploying to staging..."
|
||||
docker-compose -f docker-compose.staging.yml down || true
|
||||
sed -i "s|image:.*|image: $DOCKER_REGISTRY/$IMAGE_NAME:$TAG|g" docker-compose.staging.yml
|
||||
docker-compose -f docker-compose.staging.yml up -d
|
||||
;;
|
||||
"production")
|
||||
echo "🏭 Deploying to production..."
|
||||
docker-compose -f docker-compose.prod.yml down || true
|
||||
sed -i "s|image:.*|image: $DOCKER_REGISTRY/$IMAGE_NAME:$TAG|g" docker-compose.prod.yml
|
||||
docker-compose -f docker-compose.prod.yml up -d
|
||||
;;
|
||||
*)
|
||||
echo "❌ Unknown environment: $ENVIRONMENT"
|
||||
echo "Supported environments: staging, production"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "✅ Deployment completed successfully!"
|
||||
echo "🔍 Checking service health..."
|
||||
sleep 10
|
||||
|
||||
# Health check
|
||||
if curl -f http://localhost:8080/health > /dev/null 2>&1; then
|
||||
echo "💚 Service is healthy!"
|
||||
else
|
||||
echo "💔 Service health check failed!"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user