Diese Anleitung beschreibt die Installation der folgenden Dienste gemäß dieser Übersicht:
| Mindestens | Empfohlen | |
|---|---|---|
| RAM | 4 GB | 8 GB (steigt mit Größe der Datenbank) | 
| CPU | 1 VCPU | 4 VCPU | 
| HDD | 10 GB | 20 GB | 
| OS Empfehlung | Linux Server | Ubuntu 22.04 | 
Installiere Docker und anschließend das Docker-Compose-Plugin über das offizielle Docker Repository.
Klone den metasfresh-docker Ordner und wechsle in das neu erstellte Verzeichnis.
git clone https://github.com/metasfresh/metasfresh-docker.git
cd metasfresh-docker/
In diesem Verzeichnis befindet sich die Datei docker-compose.yml.
docker-compose.yml-Datei und passe sie deinen Anforderungen entsprechend an.
    Hinweis: Ein Beispiel hierfür findest du am Ende dieser Anleitung.
Kommentiere environment und http://example.com:8080 ein und ersetze example.com:8080 durch die URL und den Port, an dem der Server vom Browser aus erreichbar sein soll.
...
environment:
  - WEBAPI_URL=http://example.com:8080
...
Hinweis: Port
:8080wird nur dann benötigt, wenn ein anderer Port als Port 80 verwendet werden soll.
Siehe hierzu auch: Wie ändere ich die WebUI-Ports für metasfresh-Docker?
| WICHTIG: | 
|---|
| Solltest Du eine RPM-basierende Distribution einsetzen und/oder auf Deinem Docker-Host die Datei /etc/timezonenicht vorfinden, lösche oder kommentiere die Zeile- /etc/timezone:/etc/timezone:roaus deinerdocker-compose.ymlaus! | 
Erstelle die Docker Container.
 docker compose build
Mit den folgenden Befehlen kann Docker nun gestartet und wieder gestoppt werden:
#starten#
docker-compose up -d
#stoppen#
docker-compose down
Hinweis: Beim ersten Start des Containers kann es einige Minuten dauern, bis die Datenbank gefüllt und der Dienst verfügbar ist.
Nach erfolgreicher Installation kannst Du über folgende URLs auf das metasfresh WebUI zugreifen:
http://example.comoder
http://example.com:PORT (falls der Standardport nicht 80 ist).db:
  build: db
  restart: always
  volumes:
    - ./volumes/db/data:/var/lib/postgresql/data
    - ./volumes/db/log:/var/log/postgresql
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
  environment:
    - METASFRESH_USERNAME=metasfresh
    - METASFRESH_PASSWORD=metasfresh
    - METASFRESH_DBNAME=metasfresh
    - DB_SYSPASS=System
app:
  build: app
  hostname: app
  links:
    - db:db
    - search:search
  expose:
    - "8282"
    - "61616"
  restart: always
  volumes:
    - ./volumes/app/log:/opt/metasfresh/log:rw
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
  environment:
    - METASFRESH_HOME=/opt/metasfresh
webapi:
  build: webapi
  links:
    - app:app
    - db:db
    - search:search
  #for accessing the api directly (eg. for debugging or connecting your
  #app to the metasfresh api) uncomment following lines:
  #ports:
    #- "8080:8080"
  restart: always
  volumes:
    - ./volumes/webapi/log:/opt/metasfresh-webui-api/log:rw
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
webui:
  build: webui
  links:
    - webapi:webapi
  ports:
    - "80:80"
    - "443:443"
  restart: always
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
  #uncomment and set to URL where metasfresh will be available from browsers
  environment:
    - WEBAPI_URL=http://myserver.com
    search:
      build: search
      ulimits:
        memlock:
          soft: -1
          hard: -1
        nofile:
          soft: 65536
          hard: 65536
      cap_add:
        - IPC_LOCK
      volumes:
        - ./volumes/search/data:/usr/share/elasticsearch/data
        - /etc/localtime:/etc/localtime:ro
        - /etc/timezone:/etc/timezone:ro
      environment:
        - "ES_JAVA_OPTS=-Xms128M -Xmx256m"
      restart: always
Möchte man die Reports, welche im metasfresh App-Docker-Image enthalten sind, editierbar machen, so muss man diese im docker-compose.yml zuerst als Volume nach außen legen.
# Neues Volume reports hinzugefügt, um die Jasper
# Reports Dateien anpassen zu können
  volumes:
    - ./volumes/app/reports:/opt/metasfresh/reports:rw
    - ./volumes/app/log:/opt/metasfresh/log:rw
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
| ACHTUNG: | 
|---|
| Hier befinden sich natürlich die kompilierten Jasper-Dateien. Man muss sich also zum Ändern der Reports zuerst das Repository mit den Quellen der Reports ziehen und dann mit Jasper Reports kompilieren. | 
In diesem Forumsbeitrag (auf Englisch) über dieses Thema werden zwei weit verbreitete Tools empfohlen.
Bei Fragen oder Problemen kannst du in unserem offiziellen Community Forum gerne um Unterstützung bitten: