Files
Rezepte/docker-deploy.sh

84 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Farben für Output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${GREEN}Rezepte - Docker Build & Deploy Script${NC}"
echo "=================================================="
# Überprüfe ob Docker läuft
if ! docker info > /dev/null 2>&1; then
echo -e "${RED}❌ Docker ist nicht verfügbar. Bitte starte Docker Desktop.${NC}"
exit 1
fi
# Environment-Datei kopieren
if [ ! -f .env ]; then
echo -e "${YELLOW}📝 Kopiere .env.docker zu .env${NC}"
cp .env.docker .env
else
echo -e "${GREEN}✅ .env Datei bereits vorhanden${NC}"
fi
# Erstelle Upload-Ordner falls nicht vorhanden
echo -e "${YELLOW}📁 Erstelle Upload-Ordner...${NC}"
mkdir -p docker-data/uploads
mkdir -p docker-data/mysql
# Legacy Uploads kopieren falls vorhanden
if [ -d "upload" ]; then
echo -e "${YELLOW}📋 Kopiere bestehende Uploads...${NC}"
cp -r upload/* docker-data/uploads/ 2>/dev/null || true
fi
# Stoppe eventuell laufende Container
echo -e "${YELLOW}🛑 Stoppe laufende Container...${NC}"
docker compose -f docker compose.modern.yml down
# Entferne alte Images (optional - auskommentiert)
# echo -e "${YELLOW}🗑️ Entferne alte Images...${NC}"
# docker compose -f docker compose.modern.yml down --rmi all
# Build alle Services
echo -e "${YELLOW}🔨 Baue alle Services...${NC}"
docker compose -f docker compose.modern.yml build --no-cache
# Starte Services
echo -e "${YELLOW}🚀 Starte alle Services...${NC}"
docker compose -f docker compose.modern.yml up -d
# Warte auf MySQL
echo -e "${YELLOW}⏳ Warte auf MySQL...${NC}"
until docker compose -f docker compose.modern.yml exec mysql mysqladmin ping -h"localhost" --silent; do
echo -n "."
sleep 2
done
echo -e "${GREEN}✅ MySQL ist bereit${NC}"
# Führe Database Migrations aus
echo -e "${YELLOW}🗃️ Führe Database Migrations aus...${NC}"
docker compose -f docker compose.modern.yml exec backend npx prisma migrate deploy || true
docker compose -f docker compose.modern.yml exec backend npx prisma generate || true
# Zeige Container Status
echo -e "${GREEN}📊 Container Status:${NC}"
docker compose -f docker compose.modern.yml ps
echo ""
echo -e "${GREEN}🎉 Deployment erfolgreich!${NC}"
echo ""
echo "Verfügbare Services:"
echo -e "🌐 Frontend: ${GREEN}http://localhost:3000${NC}"
echo -e "🔧 Backend API: ${GREEN}http://localhost:3001${NC}"
echo -e "🗃️ phpMyAdmin: ${GREEN}http://localhost:8080${NC}"
echo -e "📁 Legacy PHP: ${GREEN}http://localhost:8090${NC} (optional)"
echo ""
echo "Nützliche Commands:"
echo " docker compose -f docker compose.modern.yml logs -f # Logs anzeigen"
echo " docker compose -f docker compose.modern.yml down # Services stoppen"
echo " docker compose -f docker compose.modern.yml exec backend bash # Backend Shell"
echo ""