Compare commits
3 Commits
89f29d60c0
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 4082a362a1 | |||
| c650d99bd4 | |||
| e61a0d8867 |
@@ -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
|
||||
Generated
+1
@@ -10,6 +10,7 @@
|
||||
<option name="highlightLevel" value="WARNING" />
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
<component name="PhpProjectSharedConfiguration" php_language_level="8.5" />
|
||||
<component name="PhpStanOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
|
||||
Generated
+4
-1
@@ -1,7 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/var" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
|
||||
+12
-5
@@ -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 "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
@@ -22,8 +22,8 @@ server {
|
||||
fastcgi_pass localhost:9000;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_buffer_size 128k;
|
||||
fastcgi_buffers 4 256k;
|
||||
fastcgi_busy_buffers_size 256k;
|
||||
|
||||
+30
-15
@@ -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,34 @@ 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" \
|
||||
-v "$PROJECT_DIR:/var/www/html:Z" \
|
||||
"$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 +85,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 +100,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"
|
||||
|
||||
Reference in New Issue
Block a user