Installation mit Container
Voraussetzungen
Der Betrieb einer testWare Instanz mit docker-compose benötigt lediglich zwei Voraussetzungen:
- Eine YAML Konfigurationsdatei, typischer Weise docker-compose.yml benannt
- Eine Containerlaufzeitumgebung wie Docker oder podman
Schritt 1: Konfigurationsdateien
Konfigurationsdatei docker-compose.yml
Eine lauffähige Konfiguration für testWare docker-compose.yml ist hier aufgelistet:
version: "3.1" # 3.1 minimum version
services:
app:
image: thermocontrol/testware
restart: always
container_name: testware-app
env_file:
- app.env
ports:
- 80:80
- 443:443
volumes:
- testware-files:/var/www/html/storage/app
depends_on:
- db
db:
image: postgres:14
restart: always
env_file:
- db.env
ports:
- 5432:5432
container_name: testware-db
working_dir: /data/pgsql
volumes:
- testware-db-data:/var/lib/postgresql/data
volumes:
testware-files:
testware-db-data:
Auffällig sind die beiden Einträge:
services:
app:
...
env_file:
- app.env
...
db:
...
env_file:
- db.env
...
Damit werden zwei Dateien referenziert, welche Umgebungsvariablen in die Laufzeit übertragen und so die Konfiguration der Services sicherstellt.
Konfigurationsdatei app.env
Hier ein Beispiel für die Datei app.env:
# Set testware enviorment
APP_URL="http://domain.tld"
APP_PORT=80
APP_DEBUG=false
APP_ENV=production
# setup mail server to log
MAIL_MAILER=log
# MAIL_HOST=smtp.mailtrap.io
# MAIL_PORT=2525
# MAIL_USERNAME=mailtrapUseName
# MAIL_PASSWORD=mailtrapPassWOrd
# MAIL_ENCRYPTION=tls
# MAIL_FROM_ADDRESS="your.email@domain.tld"
# MAIL_FROM_NAME="NAME"
#Connect Database
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=testware
DB_USERNAME=testWareDbUser
DB_PASSWORD=yourMostSecurePasswordYouCanThinkOf
# # # # # # # # # # # # # # # # # # # # # # #
# IMPORTANT #
# Make sure that the DB credentials are #
# the same as specified in the db.env #
# # # # # # # # # # # # # # # # # # # # # # #
Konfigurationsdatei db.env
Die entsprechende Konfiguration für den Container mit der PostgreSQL Datenbank db.env hätte folgenden Inhalt:
#Connect Database
POSTGRES_DB=testware
POSTGRES_USER=testWareDbUser
POSTGRES_PASSWORD=yourMostSecurePasswordYouCanThinkOf
# # # # # # # # # # # # # # # # # # # # # # #
# IMPORTANT #
# Make sure that the DB credentials are #
# the same as specified in the app.env #
# # # # # # # # # # # # # # # # # # # # # # #
Schritt 2: Starten der Container
Jetzt startet man die Anwendung im Terminal mit dem Befehl:
docker-compose up -d
Dieser Befehl wird sowohl in der Docker als auch in der podman Laufzeit verwendet. Beim ersten Start lädt die Laufzeit die entsprechenden Images und richtet diese mit den übergebenen Konfigurationsdateien ein.
Möchte man die Log-Einträge sehen kann dies entweder durch das Weglassen des Schalters -d erreichen, oder durch die Eingabe des Befehls docker compose logs beziehungsweise podman logs testware-app , vorausgesetzt, dass die testWare als testware-app läuft.
Informationen zum Befehl in der Docker Laufzeit sind in der entsprechenden Dokumentation beschrieben.
Verwendet man die podman Laufzeitumgebung, sind die Informationen zum Befehl auch in der entsprechenden Dokumentation beschrieben.
Schritt 3: Ausführen des testWare Installer
In der Konsole
Im Wurzelverzeichnis wird folgender Befehl ausgeführt.
php artisan testware:install
Mit diesem Programm richten Sie unter anderem den System-Administrator ein und legen die Tabellen in der Datenbank an.
Webinstaller
Ist das Programm abgeschlossen, wird die Einrichtung im Webbrowser forgeführt. Dazu wird er Link domain.tld/installer aufgerufen, wobei domain.tld mit der echten Adresse des Webservers ersetzt werden sollte.