Hallo!
Ich kann navbar.html nicht bearbeiten, wenn ShinyProxy als Docker-Container ausgeführt wird. Ich habe versucht, die bearbeitete navbar.html in das Verzeichnis templates/fragments zu legen und dann nach /opt/shinyproxy/templates zu kopieren, aber die Änderungen werden immer noch nicht angezeigt, wenn ich den Server neu starte.
Zum Beispiel möchte ich "Abmelden" in "Sair" ändern.
Dockerdatei:
VON openjdk:8-jre
RUN mkdir -p /opt/shinyproxy/
Führen Sie wget https://www.shinyproxy.io/downloads/shinyproxy-2.3.0.jar -O /opt/shinyproxy/shinyproxy.jar aus
KOPIEREN Sie application.yml /opt/shinyproxy/application.yml
Führen Sie mkdir-Vorlagen aus
COPY templates/* /opt/shinyproxy/templates/
Führen Sie mkdir-Vorlagen/Fragmente aus
COPY Vorlagen/Fragmente/* /opt/shinyproxy/Vorlagen/Fragmente/
ARBEITSVERZ /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]
Anwendung.yml:
Proxy:
Titel: LicitaR
Zielseite: /
Vorlagenpfad: ./templates
Port: 8080
Authentifizierung: einfach
Admin-Gruppen: Admins
Benutzer:
Protokollierung:
Datei:
/log/shinyproxy.log
Ich weiß nicht, ob ich etwas falsch mache. Kannst du mir bitte helfen? Danke.
Paulo
Sie sollten Ihr Bild neu erstellen.
Übrigens sollten Sie die Dateien nicht kopieren. Stattdessen sollten Sie den Ordner als Volume erstellen. Auf diese Weise müssen Sie nach dem Ändern der Datei nur den Browser aktualisieren.
@shrektan danke für deine Antwort.
Nach den Änderungen habe ich das Bild mit sudo docker-compose build
neu erstellt, aber es hat sich nichts geändert. Ist es richtig?
Über den Ordner als Volume, könnten Sie mir ein Beispiel zeigen? Ich bin ein neuer Benutzer von ShinyProxy, also bin ich ein bisschen verloren.
Danke.
Tut mir leid, ich habe jetzt keine Zeit, aber ich mache einen Screenshot eines Produktions-Setups für Sie. Es sollte leicht verständlich sein.
@shrektan Vielen Dank für deine Hilfe.
1) Ich habe die 'Volumes' in der docker-compose.yml erstellt und die Dockerfile geändert, wie Sie gesagt haben. Die Dateien (Admin, App, Index, Login) werden verwendet, wenn die Seite aktualisiert wird (danke an Sie). Aber die shineproxy/application.yml werden nicht verwendet, obwohl ich sudo docker-compose build
eingebe und der Befehl sudo docker-compose up -d shinyproxy
sagt "dnv_shinyproxy is up-to-date". Also habe ich einen CP in der Dockerfile bezüglich der application.yml gelassen. :(
docker-compose.yml
Version: "3.6"
Dienstleistungen:
glänzender Proxy:
Bild: datanovia/shinyproxy
Containername: dnv_shinyproxy
Neustart: bei Fehler
bauen: ./shinyproxy
Netzwerke:
- dnv-net
Häfen:
- 8080:8080
Volumen:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./shinyproxy-logs/server:/log"
- "./shinyproxy-logs/container:/container-logs"
- "./shinyproxy/application.yml:/opt/shinyproxy/application.yml"
- "./shinyproxy/templates/:/opt/shinyproxy/templates"
- "./shinyproxy/templates/fragments/navbar.html:/opt/shinyproxy/templates/fragments/navbar.html"
Euler:
Bild: Euler-Docker
Containername: dnv_euler
bauen: ./shinyapps/euler-docker
Netzwerke:
- dnv-net
Netzwerke:
dnv-net:
Name: dnv-net
Dockerfile
VON openjdk:8-jre
RUN mkdir -p /opt/shinyproxy/
Führen Sie wget https://www.shinyproxy.io/downloads/shinyproxy-2.3.0.jar -O /opt/shinyproxy/shinyproxy.jar aus
KOPIEREN Sie application.yml /opt/shinyproxy/application.yml
ARBEITSVERZ /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]
Anwendung.yml
Proxy:
Titel: LicitaR
Zielseite: /
Verstecken-Navigationsleiste: falsch
Vorlagenpfad: ./templates/
Port: 8080
Authentifizierung: einfach
Admin-Gruppen: Admins
Benutzer:
Protokollierung:
Datei:
/log/shinyproxy.log
2) Ich kann die Datei navbar.html immer noch nicht ändern. Als ich template-path: ./templates/fragments
eingegeben habe, war es möglich, aber auf diese Weise wurden die anderen Dateien, die ich geändert habe, nicht verwendet (Admin, App, Index, Login).
3) Baum
@PauloJhonny
Sie können die Fragmente in Vorlagen einfügen, aber Sie müssen dies zuerst in index.html
oder irgendwo sonst beanspruchen (sorry, ich erinnere mich nicht an den genauen Ort).
Wenn Sie nicht wissen (oder sich nicht sicher sind), was Sie tun, müssen Sie den Ordner fragments
wahrscheinlich unter shinyproxy/
. Der Grund dafür ist, dass Sie dieselbe Ordnerstruktur wie Shinyproxy beibehalten müssen, es sei denn, Sie wissen, wie es funktioniert. Die Standardordnerstruktur von Shinyproxy finden Sie hier: https://github.com/openanalytics/shinyproxy/tree/master/src/main/resources
Nun, ich habe tatsächlich ein Docker-Compose-Beispiel für Sie erstellt. Siehe https://github.com/shrektan/shinyproxy-docker-compose-example. Hoffe, das klärt Ihre Verwirrung.
(Auch auf diese Weise werden diese HTML-Vorlagendateien im laufenden Betrieb geladen. Sie müssen den Docker-Container also nicht immer wieder herunterfahren und neu starten. Bearbeiten, speichern und aktualisieren Sie einfach den Browser. Dies ist ein viel einfacherer Arbeitsablauf zur Optimierung der Benutzeroberfläche .)
@shrektan vielen Dank. Es hat mir wirklich geholfen.
Es funktionierte. Ich habe den Fragments-Ordner an der falschen Stelle abgelegt (siehe den richtigen Baum). Alle Dateien werden jetzt heißgeladen, mit Ausnahme der Datei application.yml. Danke dir.
Gut das zu hören.
Übrigens, das Thema schließen ist gut, wenn Sie keine weiteren Fragen haben.
Danke.
Danke. :)
Hilfreichster Kommentar
Sie sollten Ihr Bild neu erstellen.
Übrigens sollten Sie die Dateien nicht kopieren. Stattdessen sollten Sie den Ordner als Volume erstellen. Auf diese Weise müssen Sie nach dem Ändern der Datei nur den Browser aktualisieren.