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!