Wo sollten umweltspezifische Werte in einer Laravel 5-Anwendung gespeichert werden?

8

Ich versuche meinen Kopf um die .env Art der Konfiguration in Laravel 5 zu wickeln.

Hier ist meine Geschichte: Ich konvertiere eine existierende Laravel 4-Anwendung in Laravel 5. Ich habe derzeit verschiedene Umgebungen ( local und production ) und das kaskadierende Konfigurationssystem funktioniert gut. Ich habe meine umgebungsspezifische Anwendungskonfiguration in separaten Ordnern unter app/config .

Meine Anwendung wird derzeit in einem Docker-Container bereitgestellt (und entwickelt). Um für die Bereitstellung zu erstellen, verwende ich eine Dockerfile, um mein Anwendungsimage zu erstellen (basierend auf meinem Zweig master ), der dann in ein Repository verschoben und auf dem Produktionsserver abgerufen wird.

Nun versuche ich meine Konfiguration für Laravel 5 zu konvertieren und bin ein wenig verwirrt. Alles, was ich gelesen habe, besagt, dass Sie Ihre .env -Dateien zur .gitignore -Datei hinzufügen, damit sie nicht in Ihrem Repository enthalten ist. Ich verstehe die Sicherheitsgründe dafür - keine sensiblen API-Schlüssel / Passwörter / was auch immer an Ihr Repository zu übergeben. Aber ich bin mir nicht sicher, wie ich sicherstellen kann, dass meine Produktion .env -Datei in meinem Build-Schritt enthalten ist, wenn sie nicht Teil des Repository ist.

Die Idee, die ich hatte, war, meine Produktionsdatei .env irgendwo außerhalb der Entwicklungsumgebung in meinem Dateisystem zu platzieren und sie dann zu kopieren, wenn sie benötigt wird.

Ist dies die "beste Vorgehensweise", um dies zu bewältigen? Machen das andere so?

Danke!

    
Kryten 21.04.2015, 18:11
quelle

1 Antwort

2

.env-Datei enthält die Variablen, die Sie mit env ('variable') in den Konfigurationsdateien anwenden. Die beste Vorgehensweise wäre, dass alle Parameter, die umweltunabhängig sind (das heißt, sie funktionieren sowohl bei der Produktion als auch bei der Entwicklung) direkt in den Konfigurationsdateien festgelegt werden und alle Umgebungsvariablen in der .env-Datei

festgelegt werden

Beispiel: Auf Ihrem Dev- und Staging-Server werden Sie E-Mails mit gmail SMTP senden, aber auf dem Produktionsserver verwenden Sie Ihren eigenen SMTP-Server. Legen Sie einfach die E-Mail-Konfiguration wie folgt fest:

Konfigurationsdatei:

%Vor%

.env on dev und staging

%Vor%

.env zur Produktion

%Vor%

Schließen Sie niemals die .env-Datei in Ihr Git-Repository ein. Erstellen Sie stattdessen eine Kopie und nennen Sie sie ".env.sample" und fügen Sie sie hinzu. Dein Entwickler-Team kann also seine eigene .env-Datei einrichten, sobald der Repo geklont ist. Sie müssen .env zum .gitignore hinzufügen, um zu verhindern, dass es zum Repo hinzugefügt wird.

    
astroanu 12.05.2015 05:21
quelle