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
:8080
wird 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/timezone nicht vorfinden, lösche oder kommentiere die Zeile - /etc/timezone:/etc/timezone:ro aus deiner docker-compose.yml aus! |
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.com
oder
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: