@@ -3,11 +3,8 @@
# Konfiguration
POD_NAME = "symfony-dev"
PROJECT_DIR = " $( pwd ) "
DB_PASSWORD = "devpassword" # Ändere dies!
DB_NAME = "symfony_db "
DB_USER = "symfony_user"
DB_HOST = "localhost"
DB_PORT = "5432"
REDIS_HOST = "localhost"
REDIS_PORT = "6379 "
ENV_FILE = " $PROJECT_DIR /.env "
@@ -15,16 +12,16 @@ echo "🚀 Starte Symfony Pod Setup..."
# 1. .env Datei automatisch erstellen/aktualisieren
echo "📝 Konfiguriere .env Datei..."
DATABASE_URL = " postgresql:// ${ DB_USER } : ${ DB_PASSWORD } @ ${ DB_HOST } : ${ DB_PORT } / ${ DB_NAME } ?serverVersion=16&charset=utf8 "
REDIS_URL = " redis:// ${ REDIS_HOST } : ${ REDIS_PORT } "
if [ -f " $ENV_FILE " ] ; then
# Datei existiert - DATABASE _URL aktualisieren oder hinzufügen
if grep -q "^DATABASE _URL=" " $ENV_FILE " ; then
sed -i " s|^DATABASE_URL=.*|DATABASE _URL=\" $DATABASE _URL \"| " " $ENV_FILE "
echo " ✅ DATABASE _URL aktualisiert"
# Datei existiert - REDIS _URL aktualisieren oder hinzufügen
if grep -q "^REDIS _URL=" " $ENV_FILE " ; then
sed -i " s|^REDIS_URL=.*|REDIS _URL=\" $REDIS _URL \"| " " $ENV_FILE "
echo " ✅ REDIS _URL aktualisiert"
else
echo " DATABASE _URL=\"$DATABASE _URL \" " >> " $ENV_FILE "
echo " ✅ DATABASE _URL hinzugefügt"
echo " REDIS _URL=\"$REDIS _URL \" " >> " $ENV_FILE "
echo " ✅ REDIS _URL hinzugefügt"
fi
# APP_ENV sicherstellen
@@ -38,7 +35,7 @@ else
### symfony-pod environment ###
APP_ENV=dev
APP_SECRET=$(openssl rand -hex 16)
DATABASE_URL="$DATABASE _URL"
REDIS_URL="$REDIS _URL"
### symfony-pod environment ###
EOF
echo " ✅ .env Datei erstellt"
@@ -51,7 +48,7 @@ podman pod create --name $POD_NAME -p 8080:80
# 3. PHP-FPM Container bauen und starten
echo "🐘 Baue und starte PHP-FPM..."
podman build -t symfony-php -f podman/php/Containerfile .
podman run -d \
podman run --replace -d \
--pod $POD_NAME \
--name symfony-php \
-v $PROJECT_DIR :/var/www/html:Z \
@@ -61,36 +58,31 @@ podman run -d \
# 4. Nginx Container bauen und starten
echo "🌐 Baue und starte Nginx..."
podman build -t symfony-nginx -f podman/nginx/Containerfile .
podman run -d \
podman run --replace -d \
--pod $POD_NAME \
--name symfony-nginx \
symfony-nginx
# 5. PostgreSQL Container starten
echo "🐘 Starte PostgreSQL ..."
podman run -d \
# 5. Redis Container starten
echo "🔴 Starte Redis ..."
podman run --replace -d \
--pod $POD_NAME \
--name symfony-db \
-e POSTGRES_DB = $DB_NAME \
-e POSTGRES_USER = $DB_USER \
-e POSTGRES_PASSWORD = $DB_PASSWORD \
-v symfony-db-data:/var/lib/postgresql/data \
docker.io/library/postgres:16-alpine
--name symfony-redis \
-v symfony-redis-data:/data \
docker.io/library/redis:8-alpine \
redis-server --appendonly yes
# 6. Warten auf DB Start
echo "⏳ Warte auf Datenbank -Start..."
sleep 5
# 6. Warten auf Redis Start
echo "⏳ Warte auf Redis -Start..."
sleep 3
# 7. Symfony Abhängigkeiten installieren (falls composer.json existiert)
if [ -f " $PROJECT_DIR /composer.json " ] ; then
echo "📦 Installiere Composer Abhängigkeiten..."
podman exec -it symfony-php composer install
echo "🗄️ Erstelle Datenbank ..."
podman exec -it symfony-php php bin/console doctrine:databas e:cr eate --if-not-exists
echo "🔄 Führe Migrationen aus..."
podman exec -it symfony-php php bin/console doctrine:migrations:migrate --no-interaction
echo "🧹 Leere Symfony Cache ..."
podman exec -it symfony-php php bin/console cach e:cl ear
else
echo "ℹ ️ Keine composer.json gefunden - überspringe Installation"
fi
@@ -99,12 +91,10 @@ echo ""
echo "✅ Setup abgeschlossen!"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🌍 Deine App ist erreichbar unter: http://localhost:8080"
echo "🔑 DB Zugangsdaten:"
echo " Host: $DB _HOST (innerhalb des Pods) "
echo " Port: $DB _PORT "
echo " User: $DB_USER "
echo " Pass: $DB_PASSWORD "
echo " DB: $DB_NAME "
echo "🔴 Redis Zugangsdaten:"
echo " Host: $REDIS _HOST (innerhalb des Pods) "
echo " Port: $REDIS _PORT "
echo " URL: $REDIS_URL "
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "📝 .env Datei wurde automatisch konfiguriert"
echo ""