Grails 3.1.4 und Docker - grails Befehle geben "Kein Profil gefunden für Name web" zurück

7

Ich habe eine einfache Grails App, die für sich alleine gut läuft. Es hat kein Problem, das Grails-Webprofil mit grails run-app

zu verwenden

Wenn ich jedoch ein Docker-Image aus der App heraus erstelle, schlagen die an docker gesendeten Grils-Befehle wie grails run-app --stacktrace oder grails dependency-report --stacktrace mit stacktrace fehl:

%Vor%

Docker Build Befehl: Läuft von der Wurzel der Grails-App. Der Benutzer befindet sich in der Andockgruppe.

%Vor%

Docker-Datei: (Build wird bei RUN-Grals-Abhängigkeitsbericht --stacktrace fehlschlagen. Wenn ich diesen Befehl entferne, wird der Build abgeschlossen. Wenn die App zum ersten Mal mit dem Standardbefehl ausgeführt wird, schlägt sie jedoch mit demselben Fehler fehl.)

%Vor%

Setup:

Ubuntu 14.04 LTS 64

Jave: Oracle JDK 1.8.0_77 64

Über sdkman 4.0.32:

Grails 3.14 Groovy 2.4.6 Gradel 2.12

Docker Klient:  Version: 1.10.3  API-Version: 1.22  Go-Version: go1.5.3  Git commit: 20f81dd  Errichtet: Do Mar 10 15:54:52 2016  OS / Arch: linux / amd64

    
Ed J 08.04.2016, 13:45
quelle

7 Antworten

19

Ich hatte das gleiche Problem, als ich meine Grails 3.1.4 Anwendung, die das web Profil verwendet, auf eine neue Maschine verschoben habe.

Doing gradle clean in meinem Anwendungsstammverzeichnis löste Grails-Maven-Abhängigkeiten aus, die heruntergeladen wurden und danach startete der grails -Befehl.

    
Yuri 27.04.2016 15:28
quelle
2

Bei anderen, die dieses Problem hatten, löschte ich einfach (oder zog sie einfach für den Fall, dass ich sie wieder benötigte) meinen Build-Ordner und lief dann erneut, es lud alle Abhängigkeiten herunter und funktionierte sofort.

    
Gibbo 10.12.2016 12:51
quelle
2

Ich repariere es mit dem nächsten:

  1. Entfernen (oder umbenennen) .gradle Verzeichnis
  2. Entfernen (oder umbenennen) gradle Verzeichnis
  3. Entfernen (oder umbenennen) build Verzeichnis

Jetzt kann ich die App mit grails run-app ausführen.

    
Eduardo Cuomo 08.03.2017 16:52
quelle
2

Ich habe das gelöst, indem ich build file gelöscht habe. Durch Löschen und erneutes Ausführen kann dieses Problem möglicherweise behoben werden.

Ich entscheide mich dafür, es einfach zu löschen, weil ich nicht einmal die Funktion "Grails" aufrufen kann.

  

Wahrscheinlich sind Sie auf dieser Seite gelandet, weil Sie nach dem Fehler in einer Suchmaschine gesucht haben und Sie hierher gebracht haben.

     

Symptom: Wenn Sie "grails" unter einem bestehenden Projekt ausführen, das Sie zuvor hatten (entweder auf einem anderen PC oder von einem Quellcode wie GIT oder SVN und Sie haben fälschlicherweise das Verzeichnis "build" eingefügt).

Siehe hierzu Ссылка

    
Trainee 24.09.2017 14:15
quelle
1

Um die Situation zu verbessern, können Sie die Umgebungsvariable GRADLE_USER_HOME setzen, so dass Sie jedes Mal, wenn Sie docker ausführen, nicht jedes Mal ein neues Verzeichnis erstellen müssen, bevor Sie die Datei build / .dependencies löschen

%Vor%     
Erich von Hauske 09.04.2017 21:20
quelle
0

Ich habe die Antwort gefunden. Ich musste die Grails-Profile von github herunterladen und in $ GRAILS_HOME installieren. Ich habe diesen Schritt sofort nach dem Setzen der Grails-Umgebungsvariablen in der Docker-Datei platziert.

Siehe Beispiel für das Docker-Datei-Snippet:

%Vor%     
Ed J 09.04.2016 04:04
quelle
0

Ich habe den RUN-Abhängigkeitsbericht aus der Docker-Datei entfernt und dieses Problem behoben.

Dies bedeutet jedoch, dass die Abhängigkeiten nicht mehr im Abbild installiert sind und beim Erstellen des Containers heruntergeladen werden müssen. Keine ideale Situation.

Ich verstehe nicht, warum das Webprofil zur Laufzeit benötigt wird. Ich dachte, das Profil diktierte die Vorlage, die zum Einrichten der Grails-Anwendung verwendet wurde. Wenn das erledigt ist, warum wird es zur Laufzeit benötigt? Was genau ist das "Webprofil". Ist es eine einzelne Datei, die einfach heruntergeladen und hinzugefügt werden könnte?

Eine weitere Kuriosität ist, dass ein Bild, das von mozart / grails mit RUN-Abhängigkeitsbericht erstellt wurde, in der Docker-Toolbox für Windows einwandfrei funktioniert, aber im Docker für Linux fehlschlägt. Ich verstehe nicht, wie das gleiche Bild auf verschiedenen Docker-Plattformen ein unterschiedliches Verhalten haben würde. Ich dachte, das war der Punkt von Docker.

Tut mir leid, dass ich hier mehr Fragen als Antworten gestellt habe, aber ich hoffe, dass ich all das besser verstehen kann.

    
rhinmass 11.08.2017 15:58
quelle

Tags und Links