Symfony Podman Template
Dieses Projekt ist ein Template für die Symfony-Entwicklung unter Verwendung von Podman. Es bietet eine vollständig vorkonfigurierte Entwicklungsumgebung mit PHP-FPM, Nginx und PostgreSQL, die in einem gemeinsamen Pod ausgeführt werden.
Features
- Podman Integration: Optimiert für die lokale Entwicklung in Containern ohne Docker-Zwang.
- Multi-Container Pod:
symfony-php: PHP 8.5 FPM inklusive Symfony CLI und Composer.symfony-nginx: Nginx Webserver, vorkonfiguriert für Symfony.symfony-db: PostgreSQL 16 Datenbank.
- Automatisches Setup: Ein zentrales Bash-Skript übernimmt die Initialisierung, Image-Erstellung und Container-Steuerung.
- Automatische Umgebungskonfiguration: Erstellt oder aktualisiert die
.envDatei mit den korrekten Datenbank-Zugangsdaten.
Voraussetzungen
Stellen Sie sicher, dass folgende Software auf Ihrem System installiert ist:
- Podman
- Bash (zum Ausführen des Setup-Skripts)
- Openssl (wird vom Skript zur Generierung des
APP_SECRETverwendet)
Installation & Setup
-
Projekt vorbereiten: Klonen Sie das Repository oder laden Sie die Dateien in Ihr Projektverzeichnis.
-
Setup-Skript ausführen: Das Skript
setup-pod.shautomatisiert den gesamten Prozess:chmod +x setup-pod.sh ./setup-pod.shWas das Skript tut:
- Erstellt/aktualisiert die
.envDatei. - Erstellt einen Pod namens
symfony-dev. - Baut und startet die PHP- und Nginx-Container.
- Startet eine PostgreSQL-Instanz.
- Installiert Composer-Abhängigkeiten (falls eine
composer.jsonvorhanden ist). - Erstellt die Datenbank und führt Migrationen aus.
- Erstellt/aktualisiert die
-
Anwendung aufrufen: Sobald das Setup abgeschlossen ist, erreichen Sie die Anwendung unter: 👉 http://localhost:8080
Datenbank-Details
Die Standard-Zugangsdaten (konfigurierbar im setup-pod.sh) sind:
- DB-Host:
localhost(da alle Container im selben Pod laufen) - DB-Port:
5432 - User:
symfony_user - Passwort:
devpassword - Datenbank:
symfony_db
Arbeiten mit der Umgebung
Symfony & Composer Befehle
Da PHP in einem Container läuft, müssen Befehle dort ausgeführt werden:
# Beispiel: Cache leeren
podman exec -it symfony-php php bin/console cache:clear
# Beispiel: Neue Migration erstellen
podman exec -it symfony-php php bin/console make:migration
Logs einsehen
Um die Ausgaben der verschiedenen Dienste zu verfolgen:
podman logs -f symfony-php
podman logs -f symfony-nginx
Umgebung stoppen und starten
# Pod stoppen
podman pod stop symfony-dev
# Pod wieder starten
podman pod start symfony-dev
Projektstruktur
config/: Symfony Konfiguration.podman/: Container-Definitionen (Containerfile) und Webserver-Konfiguration.public/: Document Root für Nginx.src/: PHP Quellcode.setup-pod.sh: Das Herzstück der Automatisierung.
Lizenz
Dieses Projekt ist unter der im LICENSE File angegebenen Lizenz lizenziert.