Docker - 1000 bis 5000 Geräte

Einleitung

Für eine Geräteanzahl im Bereich von 1000 bis 5000 wird empholen, den Applikations- und den Datenbankserver separat zu betreiben.
Die grundlegende Einrichtung der Server sowie die Installation der erforderlichen Softwarepakete sind detailliert in der Allgemeinen Docker Installationsanleitung → beschrieben.
Diese Anleitung beschreibt die notwendigen Konfigurationsdateien mit erläuternden Kommentaren, die Ihnen die Anpassung erleichtern und ist ergänzend zur allgemeinen Docker Installationsanleitung .

Hardware Anforderung und Aufbau

1x Anwendungsserver

  • 2 CPU Kerne
  • 4 GB RAM
  • Etwa 30 GB SSD Speicherplatz

1x Datenbankserver

  • 4 CPU Kerne
  • 8 GB RAM
  • Etwa 100 GB SSD Speicherplatz

App Server

docker-compose.yml

services:
  relution:
    image: relution/relution:latest
    restart: always
    container_name: docker_relution
    networks:
      relution-network:
        aliases:
          - relution-docker
    environment:
      - TZ=Europe/Berlin
    expose:
      - '8080'
      - '8099'
    ports:    # Extern freigegebener Port der Applikation zum testen // deaktivieren sobald der Server unter der URL erreichbar ist
      - '8080:8080'    # Extern freigegebener Port der Applikation zum testen // deaktivieren sobald der Server unter der URL erreichbar ist
    volumes:
      - './application.yml:/opt/relution/application.yml'

networks:
  relution-network:

application.yml

relution:
  system:
    admin:
      password: $Platzhalter    # Initiales Passwort hier setzen und nach der ersten Anmeldung im Portal ändern !
      email: $Platzhalter    # Alternative zum Benutzernamen "Admin" und zum zurücksetzen des Passworts
  server:
    externalURL: https://$Platzhalter    # Ersetzen durch die URL unter der der Server erreichbar sein wird. Beginnt immer mit https://
  database:
    type: mariadb
    url: jdbc:mariadb://$Platzhalter:3306/relution?useServerPrepStmts=true    # IP, FQDN oder URL des Datenbankservers mit Portangabe. Der Port wird auf DB Seite  weiter in der Anleitung konfiguriert.
    username: relution    # Benutzername der Datenbank
    password: $Platzhalter    # Passwort der relution Datenbank = MYSQL_PASSWORD

Das Passwort aus der application.yml wird folgend noch einmal bei der Datenbank Konfiguration in der docker-compose.yml benötigt

DB Server

docker-compose.yml

services:
  mariadb:
    image: mariadb:lts
    restart: always
    container_name: docker_mariadb
    networks:
      relution-network:
        aliases:
          - mariadb-docker
    environment:
      - TZ=Europe/Berlin
      - MYSQL_DATABASE=relution
      - MYSQL_ROOT_PASSWORD=$Platzhalter    # Root Passwort für die Datenbank
      - MYSQL_USER=relution
      - MYSQL_PASSWORD=$Platzhalter    # Passwort der relution Datenbank = MYSQL_PASSWORD
    expose:
      - '3306'
    ports:    # extern freigegebener Port der Datenbank, der Applikation Server muss diese erreichen können
      - '3306:3306'    # extern freigegebener Port der Datenbank, der Applikation Server muss diese erreichen können
    volumes:
      - 'mariadb:/var/lib/mysql'
      - '/opt/relution/relution.cnf:/etc/mysql/conf.d/relution.cnf'

volumes:
  mariadb:

networks:
  relution-network:

relution.cnf

[mysqld]
collation-server=utf8mb4_general_ci
character-set-server=utf8mb4
max_allowed_packet=1G
innodb_file_per_table=1