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.