Compare commits

...

2 Commits

3 changed files with 74 additions and 20 deletions
+33
View File
@@ -0,0 +1,33 @@
# Abhängigkeiten
/vendor/
/node_modules/
# Symfony-Laufzeit
/var/cache/
/var/log/
/var/sessions/
# Sensible Daten
.env.local
.env.local.php
.env.*.local
/config/secrets/
# Generierte Assets
/public/bundles/
/public/build/
# Logs
/log/
# IDE & OS
.idea/
.vscode/
.DS_Store
Thumbs.db
# Lock-Dateien (groß, wenig Mehrwert)
composer.lock
symfony.lock
package-lock.json
yarn.lock
+12 -5
View File
@@ -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 "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
+29 -15
View File
@@ -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 <befehl>"
echo " podman exec -it symfony-php composer require <paket>"
echo " podman exec -it $CTR_PHP bash"
echo " podman exec -it $CTR_PHP php bin/console <befehl>"
echo " podman exec -it $CTR_PHP composer require <paket>"
echo ""
echo " podman pod stop $POD_NAME # Umgebung stoppen"
echo " podman pod start $POD_NAME # Umgebung starten"