metafresh logo and link to homepage

Wie installiere ich den metasfresh-Stack mittels Docker?

Übersicht

Diese Anleitung beschreibt die Installation der folgenden Dienste gemäß dieser Übersicht:

Hardware-Anforderungen

  Mindestens Empfohlen
RAM 3 GB 4 GB
CPU 1 VCPU 4 VCPU
HDD 10 GB 20 GB

Installation mit Docker

Docker und Docker Compose installieren

  1. Docker installieren.
  2. Docker Compose installieren.

metasfresh installieren

  1. Klone die Docker Compose-Datei und wechsle in das neu erstellte Verzeichnis.

    git clone https://github.com/metasfresh/metasfresh-docker.git
    cd metasfresh-docker/
    
  2. Kommentiere http://beispiel.com:8080 aus und ersetze die Zeile durch einen vom Browser extern erreichbaren Hostnamen und Port.

    vi ./docker-compose.yml

    ...
    #environment:
     #- WEBAPI_URL=http://beispiel.com:8080
    ...
    

    Hinweis: Port :8080 ist nur nötig, wenn ein anderer 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 Host die Datei /etc/timezone nicht vorfinden, lösche oder kommentiere die Zeile - /etc/timezone:/etc/timezone:ro aus deiner docker-compose.yml aus!

  3. Baue den Docker-Container.

    docker-compose build

  4. Starte den Docker-Container.

    docker-compose up -d

    Hinweis: Beim ersten Start kann es ein paar Minuten dauern, bis die Datenbank initialisiert und die Services verfügbar sind.

  5. Optional: Den Docker-Container wieder stoppen.

    docker-compose down

Zugriff

Nach erfolgreicher Installation kannst Du hierüber auf das WebUI zugreifen:

http://MYDOCKERHOST

oder

http://MYDOCKERHOST:PORT (falls der Standard-Port nicht 80 ist).

Beispiel docker-compose.yml

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

Visualisierung der Docker-Container

In diesem Forumsbeitrag (auf Englisch) über dieses Thema werden zwei weit verbreitete Tools empfohlen.

Feedback

Bei Fragen oder Problemen kannst Du uns gerne in unserem offiziellen Forum um Unterstützung bitten: forum.metasfresh.org.


Zur Quelldatei auf github.com