Mit Docker-Installer¶
Dieses Kapitel enthält eine Schritt-für-Schritt-Beschreibung des Installationsprozesses für Allegra in einem Docker-Container mit einer MySQL-Datenbank.
Dieses Kapitel beschreibt
Wie Sie das Allegra Docker-Paket erhalten
Wie Sie Allegra in einem Docker-Container installieren und ausführen
Allegra Docker Package¶
Schritt 1: Allegra Docker Package herunterladen¶
Laden Sie sich das Allegra Docker Package von der Allegra Download-Seite herunter und speichern Sie es in einem leeren Verzeichnis.
mkdir $HOME/adocker
cd $HOME/adocker
export WORKDIR="$HOME/adocker"
wget https://www.trackplus.com/files/downloads/latest-dist/core/allegra-latest-docker.tar -O allegra-docker.tar
Schritt 2: Allegra Docker Package entpacken¶
Entpacken Sie die Datei:
tar -xvf allegra-docker.tar
ls -al
Sie sollten u.a. jetzt sehen:
eine Befehlsdatei
allegra-quickstart.sh
eine Docker-Datei
allegra-$VERSION.dockerfile
eine Docker-Datei
allegra-base.dockerfile
eine Docker-Datei
allegra-base-tex.dockerfile
Vorbereitung¶
Hardware-Anforderungen¶
Stellen Sie sicher, dass die Voraussetzungen hinsichtlich der Laufzeitumgebung erfüllt sind.
Docker-Installation prüfen¶
Stellen Sie sicher, dass Docker auf Ihrem Server installiert ist und der Docker-Daemon läuft.
docker ps --all
Installation mit Shell-Skript¶
Um Allegra auf der Befehlszeile zu installieren und auszuführen, geben Sie ein:
./allegra-quickstart.sh
Nach einiger Zeit sollte Ihr System unter http://ihrServer.com:$HTTP_PORT/$CONTEXT zugänglich sein. Für eine Produktivumgebung sollten Sie vor allem das Arbeitsverzeichnis, den Port und den Kontext im Skript ganz oben anpassen.
...
HTTP_PORT=8082
ALLEGRA_HOME=/tmp/allegra/demo
CONTEXT=demo
...
Installation mit Docker Composer¶
Mit Hilfe des Docker Composers können Sie den Verbund von Datenbank und Servlet-Container einfacher verwalten als mit einem Skript. Bevor Sie das System das erste mal starten, sollten Sie
ein Arbeitsverzeichnis erstellen
das Arbeitsverzeichnis konfigurieren
den HTTP-Port anpassen, unter dem Allegra erreichbar sein wird
optional den zur Verfügung stehenden Speicher einstellen
Die zugehörigen Einstellungen nehmen Sie in der versteckten Datei .env
vor.
Diese sieht z.B. so aus:
CONTEXT=demo
ALLEGRA_HOME=/tmp/allegra
HTTP_PORT=8082
JAVA_OPTS=-Djava.awt.headless=true -Xmx1024m -Xms512m
1. Arbeitsverzeichnis erstellen¶
Erstellen Sie ein Verzeichnis, das Konfigurationsdaten,
Indexe und Anhänge für Ihre Allegra-Instanz enthalten wird.
Dort sollten zwischen 1 und 10 GByte Speicherplatz zur
Verfügung stehen, je nach Nutzungsgrad und Anzahl der Nutzer.
Im folgenden nennen wir dies ALLEGRA_HOME
.
mkdir -p $HOME/allegra
export ALLEGRA_HOME=$HOME/allegra
2. Arbeitsverzeichnis konfigurieren¶
Öffnen Sie die Datei .env
und passen Sie die Variable
ALLEGRA_HOME an Ihre
Umgebung an. Stellen Sie sicher, dass das Arbeitsverzeichnis
ALLEGRA_HOME
existiert und schreibbar ist.
3. HTTP-Port konfigurieren¶
In der Datei .env
setzen Sie die Variable
HTTP_PORT auf den gewünschten Wert.
4. JAVA_OPTS konfigurieren¶
In der Datei .env
setzen Sie die Variable
JAVA_OPTS auf den gewünschten Wert. Hier können Sie insbesondere den
zur Verfügung stehenden Hauptspeicher konfigurieren (Minimum: 512 MB).
System starten¶
Starten Sie das System mit
docker compose up -d
Die zugehörige Steuer-Datei heißt docker-compose.yml
und sieht so aus:
version: "3.9"
services:
db:
image: postgres:13-bullseye
restart: always
container_name: allegra-${CONTEXT}-db
volumes:
- ${ALLEGRA_HOME}/dbdata:/var/lib/postgresql/data
environment:
- POSTGRES_DB=allegra-${CONTEXT}
- POSTGRES_USER=allegra
- POSTGRES_PASSWORD=tissi189
ports:
- "8001:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U allegra -d allegra-${CONTEXT}"]
interval: 10s
timeout: 5s
retries: 2
allegra:
image: allegrapm/core:7.2
restart: always
container_name: allegra-${CONTEXT}
volumes:
- ${ALLEGRA_HOME}:/home/allegra
environment:
JAVA_OPTS: ${JAVA_OPTS}
CONTEXT: ${CONTEXT}
DB_URL: jdbc:postgresql://db/allegra-${CONTEXT}
DB_USER: allegra
DB_PASSWD: tissi189
ports:
- "${HTTP_PORT}:8080"
- "8089:8009"
depends_on:
db:
condition: service_healthy
Allegra-Image-Umgebungsvariablen¶
Das Allegra-Image verwendet mehrere Umgebungsvariablen, um eine Datenbankverbindung und einen Dateispeicherort für die Speicherung von Anhängen und Konfigurationsdateien bereitzustellen.
Hinweis
Die im folgenden beschriebenen Umgebungsvariablen beziehen sich auf das
Allegra Image und haben keinen direkten Bezug zu den Eintragungen in der
Datei .env
für den Docker Composer. Ein Bezug wird wenn überhaupt erst über die
Datei docker-compose.yml
hergestellt.
CONTEXT
¶
Die Umgebungsvariable CONTEXT
bestimmt die URL, unter der die Allegra-Instanz
sichtbar sein wird. Die URL wird wie http://<yourmachine>:8080/$CONTEXT
aussehen, vorausgesetzt
Sie haben den Port 8080 des Containers auf 8080 außerhalb Ihres Containers abgebildet.
Der Standardwert ist allegra
.
DB_URL
¶
Dies definiert die JDBC-Treiber-URL, unter der Allegra die Datenbank finden kann.
Diese Datenbank muss existieren, bevor Sie Allegra starten.
Der durch DB_USER
definierte Benutzer und das Passwort DB_PASSWD
sollten
alle Rechte auf diese Datenbank erhalten haben.
Hier sind einige DB_URL
Beispiele:
PostgreSQL:
jdbc:postgresql://yourdbserver/allegra
MySQL:
jdbc:mysql://localhost:3306/allegra?useSSL=false&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC
Oracle:
jdbc:oracle:thin:@80.96.67.62:1521:orcl
Microsoft SQLServer:
jdbc:jtds:sqlserver://localhost/allegra
Firebird:
jdbc:firebirdsql://localhost/home/allegra/dbase/ALLEGRA.GDB?charSet=UTF-8
DB2:
jdbc:db2:ALLEGRA
DB_ADAPTER
¶
Um sich mit einer Datenbank zu verbinden, muss Allegra deren Typ kennen. Die folgenden Typen werden von diesem Image unterstützt:
postgresql
mysql
mssql
oracle (mit zusätzlicher Bibliothek)
firebird
db2app (mit zusätzlicher Bibliothek)
Hinweis
Oracle- und DB2-Datenbanken benötigen zusätzliche JDBC-Treiber, die nicht in diesem Image enthalten sind. Siehe Hinzufügen von JDBC-Treibern für weitere Informationen.
Das standardmäßig verwendete Datenbanksystem ist PostgreSQL.
DB_DRIVER
¶
Mit dieser Variable definieren Sie die zu verwendende JDBC-Treiberklasse. Sie hängt
von der Art der Datenbank ab, die Sie verwenden wollen (DB_ADAPTER
).
Die Voreinstellung ist org.postgresql.Driver
für eine PostgreSQL Datenbank.
Andere Beispiele sind:
MySQL:
org.gjt.mm.mysql.Driver
Oracle:
oracle.jdbc.driver.OracleDriver
Microsoft SQLServer:
net.sourceforge.jtds.jdbc.Driver
Firebird:
org.firebirdsql.jdbc.FBDriver
DB2:
com.ibm.db2.jdbc.app.DB2Driver
DB_USER
¶
DB_USER
definiert den Benutzer, unter dem Allegra auf die Datenbank zugreift.
Der Standardwert ist allegra
.
DB_PASSWD
¶
DB_PASSWD
definiert das Passwort für den Benutzer, unter dem Allegra auf die Datenbank zugreift.
Der Standardwert ist Tissi189
.
JAVA_OPTS
¶
Die JAVA_OPTS
werden an die virtuelle Maschine von Allegra/Tomcat weitergegeben. Hier
können Sie den für Ihre Allegra-Instanz verfügbaren Speicher einstellen. Beispiel und
Vorgabe:
-Djava.awt.headless=true -Xmx2048m -Xms512m -XX:MaxRAM=2500m -Duser.timezone=Europe/Berlin
Hinzufügen von JDBC-Treibern¶
Wir empfehlen, zusätzliche JDBC-Treiber hinzuzufügen, indem Sie ein neues Docker
Image zu erstellen, das auf dem Allegra Image basiert. Die Bibliotheken sollten in
dem Verzeichnis /usr/local/tomcat/lib
abgelegt werden.
Zur Sicherheit¶
Wenn Sie den Allegra-Server produktiv betreiben möchten, sollten Sie ihn hinter einen nginx oder Apache Proxy-Server legen. So stellen Sie sicher, dass nur SSL-gesicherte Verbindungen genutzt werden und exponieren den Tomcat nicht im Internet.
Anleitungen dazu gibt es z.B. hier: