diff --git a/build-prod.sh b/build-prod.sh index 6f8e45d..271f192 100755 --- a/build-prod.sh +++ b/build-prod.sh @@ -1,11 +1,18 @@ #!/bin/bash set -e -IMAGE_NAME="${1:-symfony-app}" -IMAGE_TAG="${2:-latest}" - PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# Projektnamen aus composer.json lesen (Teil nach "/") und bereinigen +PROJECT_NAME=$(grep -m1 '"name"' "$PROJECT_DIR/composer.json" \ + | sed 's/.*"[^/]*\/\([^"]*\)".*/\1/' \ + | tr '[:upper:]' '[:lower:]' \ + | sed 's/[^a-z0-9]/-/g') + +IMAGE_NAME="${1:-$PROJECT_NAME}" +IMAGE_TAG="${2:-latest}" + +echo "Projekt: $PROJECT_NAME" echo "Baue Produktions-Image: $IMAGE_NAME:$IMAGE_TAG" echo "" @@ -21,7 +28,7 @@ echo "" echo "Container starten:" echo "" echo " podman run -d \\" -echo " --name symfony-app \\" +echo " --name $PROJECT_NAME \\" echo " -p 9000:9000 \\" echo " -e APP_ENV=prod \\" echo " -e APP_SECRET=\$(openssl rand -hex 16) \\" @@ -29,5 +36,5 @@ echo " -e REDIS_URL=redis://your-redis-host:6379 \\" echo " $IMAGE_NAME:$IMAGE_TAG" echo "" echo "Cache warmup nach dem Start:" -echo " podman exec symfony-app php bin/console cache:warmup --env=prod" +echo " podman exec $PROJECT_NAME php bin/console cache:warmup --env=prod" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" diff --git a/setup-dev.sh b/setup-dev.sh index 5e0609c..bad5af0 100755 --- a/setup-dev.sh +++ b/setup-dev.sh @@ -1,10 +1,24 @@ #!/bin/bash set -e -POD_NAME="symfony-dev" PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -echo "Starte Symfony Entwicklungsumgebung..." +# Projektnamen aus composer.json lesen (Teil nach "/") und bereinigen +PROJECT_NAME=$(grep -m1 '"name"' "$PROJECT_DIR/composer.json" \ + | sed 's/.*"[^/]*\/\([^"]*\)".*/\1/' \ + | tr '[:upper:]' '[:lower:]' \ + | sed 's/[^a-z0-9]/-/g') + +POD_NAME="${PROJECT_NAME}-dev" +CTR_PHP="${PROJECT_NAME}-php" +CTR_NGINX="${PROJECT_NAME}-nginx" +CTR_REDIS="${PROJECT_NAME}-redis" +IMG_PHP="${PROJECT_NAME}-php" +IMG_NGINX="${PROJECT_NAME}-nginx" +VOL_REDIS="${PROJECT_NAME}-redis-data" + +echo "Projekt: $PROJECT_NAME" +echo "Pod: $POD_NAME" echo "" # .env.local erstellen falls nicht vorhanden @@ -33,33 +47,33 @@ echo "" # PHP-FPM bauen und starten echo "Baue PHP-FPM Container (inkl. Xdebug, Redis-Extension)..." -podman build -t symfony-php -f podman/php/Containerfile "$PROJECT_DIR" +podman build -t "$IMG_PHP" -f podman/php/Containerfile "$PROJECT_DIR" echo "Starte PHP-FPM..." podman run -d \ --pod "$POD_NAME" \ - --name symfony-php \ + --name "$CTR_PHP" \ -v "$PROJECT_DIR:/var/www/html:Z" \ - symfony-php + "$IMG_PHP" echo "" # Nginx bauen und starten echo "Baue Nginx Container..." -podman build -t symfony-nginx -f podman/nginx/Containerfile "$PROJECT_DIR" +podman build -t "$IMG_NGINX" -f podman/nginx/Containerfile "$PROJECT_DIR" echo "Starte Nginx..." podman run -d \ --pod "$POD_NAME" \ - --name symfony-nginx \ - symfony-nginx + --name "$CTR_NGINX" \ + "$IMG_NGINX" echo "" # Redis starten echo "Starte Redis..." podman run -d \ --pod "$POD_NAME" \ - --name symfony-redis \ - -v symfony-redis-data:/data \ + --name "$CTR_REDIS" \ + -v "$VOL_REDIS:/data" \ docker.io/library/redis:8-alpine \ redis-server --appendonly yes echo "" @@ -70,11 +84,11 @@ sleep 2 # Composer install if [ -f "$PROJECT_DIR/composer.json" ]; then echo "Installiere Composer-Abhängigkeiten..." - podman exec symfony-php composer install --no-interaction + podman exec "$CTR_PHP" composer install --no-interaction echo "" echo "Leere Symfony Cache..." - podman exec symfony-php php bin/console cache:clear --env=dev + podman exec "$CTR_PHP" php bin/console cache:clear --env=dev echo "" fi @@ -85,9 +99,9 @@ echo " App: http://localhost:8080" echo " Redis: localhost:6379 (innerhalb des Pods)" echo "" echo "Nützliche Befehle:" -echo " podman exec -it symfony-php bash" -echo " podman exec -it symfony-php php bin/console " -echo " podman exec -it symfony-php composer require " +echo " podman exec -it $CTR_PHP bash" +echo " podman exec -it $CTR_PHP php bin/console " +echo " podman exec -it $CTR_PHP composer require " echo "" echo " podman pod stop $POD_NAME # Umgebung stoppen" echo " podman pod start $POD_NAME # Umgebung starten"