Docker mit traefik und portainer
This commit is contained in:
84
docker-deploy.sh
Executable file
84
docker-deploy.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/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 Klaus - 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 ""
|
||||
Reference in New Issue
Block a user