Installation
Vor der Installation
Als Docker-Anwendung benötigt die GBD WebSuite keine Installation per se, aber Sie müssen ein paar Dinge einstellen, damit die GBD WebSuite problemfrei starten kann.
Verzeichnisse
Die GBD WebSuite benötigt einige Verzeichnisse, die von Ihrem Host-Rechner eingebunden werden müssen, um die Daten mit der Außenwelt auszutauschen.
ein oder mehrere Daten-Verzeichnisse. Hier speichern Sie Ihre Konfiguration und Daten. Der Server schreibt nie in diese Verzeichnisse, daher ist es eine gute Idee, sie schreibgeschützt zu mounten. Diese Verzeichnisse können an beliebige Stellen im Container eingebunden werden (wir verwenden standardmäßig
/data
).ein var-Verzeichnis, in dem der Server seine eigenen persistenten Daten wie Caches und Sitzungsdaten speichert. Es sollte an
/gws-var
im Container montiert werden.ein temporäres Verzeichnis tmp. Normalerweise würde man es als
tmpfs
bezeichnen.
Nutzer
Die GBD WebSuite wird intern standardmäßig als Nutzer- und Gruppen-ID 1000
ausgeführt. Sorgen Sie bitte dafür, das dieser Nutzer in Ihrem Hostsystem
über Leserechte für alle Daten-Verzeichnisse verfügt
über Schreib- und Leserechte für var und tmp Verzeichnisse
Sie können die uid/gid
Werte mit Umgebungsvariablen GWS_UID
und GWS_GID
ändern.
Port
Die GBD WebSuite benutzt die Ports 80
und 443
. Sie können sie auf alles abbilden, was Sie beim Testen wollen, und auf echte 80/443 in der Produktion.
Konfiguration
Die GBD WebSuite erwartet die Konfiguration in /data/config.json
. Wenn Sie einen anderen Speicherort und/oder ein anderes Format bevorzugen, setzen Sie die Umgebungsvariable GWS_CONFIG
auf den Pfad Ihrer Konfigurationsdatei.
See also
Die Konfigurationsformate sind unter Übersicht beschrieben.
Externe Adressen
Wenn Ihr GBD WebSuite Container externe Verbindungen benötigt (höchstwahrscheinlich zu Datenbankservern), benötigen Sie eine oder mehrere --add-host
Optionen in Ihrem Docker-Startbefehl.
Einstiegspunkt
Die GBD WebSuite hat einen einzigen Einstiegspunkt, ein Shell-Skript namens gws
. Um den Server zu starten oder zu stoppen, nutzen Sie die folgenden Befehle:
gws server start gws server stop
Ausführen mit gws
-Shell-Skript
Folgende Optionen müssen Sie in Ihrem gws
-Shell-Skript anpassen:
ein oder mehrere Daten-Verzeichnisse einbinden
var und tmp Verzeichnisse einbinden
Port-Mappings
Konfigurationspfad
externe Hosts
Hier ist eine Skript-Vorlage, die die GBD WebSuite mittels docker run
startet. Sie können diese Vorlage nach Ihren Bedürfnissen anpassen.
#!/usr/bin/env bash
RELEASE=6.1
CONTAINER=gws-container
DOCKER='sudo docker'
IMAGE=gbdconsult/gws-server:$RELEASE
LOG_DRIVER=syslog
DATA_DIR=/your/gws/data/directory
VAR_DIR=/your/gws/var/directory
CONFIG_PATH=/data/config.cx
STARTOPTS=(
--name $CONTAINER
--mount type=bind,src=$DATA_DIR,dst=/data,readonly
--mount type=bind,src=$VAR_DIR,dst=/gws-var
--mount type=tmpfs,dst=/tmp,tmpfs-mode=1777
--publish 0.0.0.0:80:80
--publish 0.0.0.0:443:443
--log-driver $LOG_DRIVER
--log-opt tag=GWS
--env GWS_CONFIG=$CONFIG_PATH
)
start_server() {
$DOCKER run ${STARTOPTS[*]} --detach $IMAGE gws server start
}
stop() {
$DOCKER exec $CONTAINER gws server stop
$DOCKER stop $CONTAINER
$DOCKER rm --force $CONTAINER
}
case "$1_$2" in
server_start) start_server ;;
server_stop) stop ;;
server_restart) stop; start_server ;;
esac
Sobald Sie dieses Skript als z.B. gws
in Ihren Pfad abspeichern, können Sie die WebSuite mit diesen Befehlen steuern:
gws server start
gws server stop
gws server restart
Aktuellen Quellcode anbinden
Da die GBD WebSuite aktiv entwickelt wird, kann es vorkommen, dass eine in dem Docker-Image enthaltene Version von unserem Quellcode veraltet ist. Sie können aber das Image mit der aktuellen Version ausführen indem Sie das Quellcodeverzeichnis unter gws-app
mounten.
Laden Sie zuerst unser Paket von Ihrer Version herunter (in diesem Fall, Version 6.1):
curl -O http://gws-files.gbd-consult.de/gws-6.1.tar.gz
entpacken Sie das Paket:
tar xvzf gws-6.1.tar.gz
und mounten Sie den gws-server/app
Unterordner als gws-app
:
--mount type=bind,src=<absoluter Pfad>/gws-server/app,dst=/gws-app,readonly
Host-Installation
Wir haben auch ein Skript, das die WebSuite direkt auf Ihrem System installiert, ohne docker. Das Skript finden Sie in unserem Github unter https://github.com/gbd-consult/gbd-websuite/blob/master/install/install.sh
Caution
Diese Entwicklung ist experimentell, nicht auf Produktionsserver probieren!