Hauptmenü

Frage zum KIX Update in Bezug auf Docker

Begonnen von Detlef1337, 20.02.2023 09:36:09

⏪ vorheriges - nächstes ⏩

Detlef1337

Guten Morgen,

ich hatte bereits vor Kurzem eine Anfrage gestellt, in der ich mein Anliegen jedoch nicht optimal darstellen konnte. Dies möchte ich nun erneut versuchen und hoffe, hier eine passende Antwort zu finden.

Wir verwenden eine alte OTRS Version für unseren Kundensupport im Online-Handel. Hier wollen wir nun auf KIX18 umsteigen. Im alten System werden die Emails - bevor sie in das Ticketsystem gehen - modifiziert. Dies geschieht durch Anpassung des Email Headers ( hier wird z.B. eine Kundennummer eingefügt ) und andere Kleinigkeiten. Ausgeführt wird dies durch selbst erstellte Scripts, die zusammen mit OTRS auf der Maschine laufen. In OTRS selbst erfolgen dann weitere Anpassungen ( z.B. Anrede, Signatur etc. ) durch die Software eigenen Möglichkeiten. Auch eine Verteilung der Emails auf die unterschiedlichen Queues wird daraufhin durch OTRS durchgeführt.

Dies ist das aktuelle Setting. Jetzt stellt sich im Zuge der Umstellung auf Kix18 eine Frage zum Kix18-Update. Besonders bezüglich Docker.

Da die neueste Version von Kix über Docker realisiert wurde, müssen auch wir Anpassungen vornehmen. Die besagten Scripts laufen nun innerhalb des Docker Containers ( aktuell passen wir es noch an, aber prinzipiell läuft alles ).
Jetzt ist die Frage: Was passiert, wenn wir KIX18 updaten?

Werden die Docker-Images neu gezogen und unsere Scripte sind weg ( d.h. wir müssten diese danach wieder einpflegen? ). Und wie läuft das Datenbank-Update? Muss hier erst eine Sicherung erstellt, das Update erfolgen und die Sicherung der Datenbank wieder neu eingespielt werden?

Ich hoffe, ich konnte die Situation gut darstellen und würde mich über Antworten freuen.

Liebe Grüße

Torsten Thau

Hi,

es hängt davon ab, wie Eure Skripte in die Container integriert sind. Wenn sie bspw. mittels "docker cp" eingefügt wurden sind sie nach dem Neustart weg. Dazu muss auch kein Image neu gezogen werden. Es reicht den Container neu zu starten um den Ausgangszustand der Codebasis wieder herzustellen.

Eine Möglichkeit für permanentere Änderungen sind bind-mounts. Damit können Dateien (Eure Skripte) in den Container bei dessen Start eingebunden werden. Dazu müssen die entsprechenden Dateien in docker-compose.yml eingetragen werden. Das geschieht bereits mit den Konfigurationen die kix-onpremise mit bringt. 

Im folgenden Beispielsnippet wird ein cool_script.exs, das auf dem Dockerhost in einem Unterverzeichnis zur docker-compse.yml liegt, im Backend-Container eingebunden:

...
  backend:
    image: ${REGISTRY}/backend:${IMAGE_TAG}
    user: "110010100"
    depends_on:
      - redis
    env_file:
      - environment
    volumes:
      - ./backend:/opt/kix/conf.d
      - shared:/mnt/shared
      - backend:/mnt/data
      - ./MyFancyScripts/cool_script.exs:/path/in/container/my_scripts/cool_script.exs
    logging:
      options:
        max-size: "100m"
        max-file: "5"
...


Es spricht aber auch nichts dagegen die Mailabholung vom Dockerhost aus durchzuführen. Ich nehme an es wird ein .forward-File o.ä. benutzt um zunächst die Scriptbehandlung der eingehenden Email vorzunehmen. Das vereinfacht vielleicht Euer gesamtes Setup und das Weiterreichen der Mail an KIX kann auch der Dockerhost tun:

user@dockerhost:~#$ cat ./YourEmail.eml | docker exec -i kix-backend-1 kix Maint::PostMaster::Read



CU, Torsten


PS: Die DB und die Konfigurationen von KIX sind natürlich persistent und auch nach einem Neustart des Stacks noch vorhanden.