Da ich an anderer Stelle (außerhalb des Forums) keine Hilfe fand, hoffe ich, dass ich hier Hilfe von erfahrenen Personen bekommen kann.
Da ich leider nicht alle Linux-Befehle verstehe, erhoffe ich mir auch hier Aufklärung was diese genau machen und ob ich diese in den einzelnen Shell-Scripten (.sh) oder gar im gesplitteten Dockerfile benötige oder nicht. Wahrscheinlich muss man das Dockerfile selber garnicht splitten sondern nur für meine Zwecke (und jeder Instanz abwandeln) - da scheint mir wenig drin zu sein.
Mir geht es darum, dass ich ein Dockerfile bzw. die Shell-Scripte so aufsplitten kann, dass ich jeder Anwendung ihren eigenen Container/Image geben kann. Ich benötige von der Hauptapplikation 2 laufende Instanzen, aber z.B. nur eine Datenbank (MariaDB), 1x Postfix, 1 Nginx etc.
Dockerfile: https://github.com/zammad/zammad-docker/blob/master/Dockerfile
Docker-Entrypoint.sh: https://github.com/zammad/zammad-docker/blob/master/docker-entrypoint.sh
Install-script.sh: https://github.com/zammad/zammad-docker/blob/master/install-zammad.sh
Meine Fragen zum Dockerfile: Was genau macht der Befehl? # set shell SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
Eine Shell setzen, laut dem Kommentar "#"... und pipefail würde eine Meldung ausgeben, wenn ein Fehler auftritt. Soweit richtig?
Wenn ich das Dockerfile für jede Instanz nutzen möchte, dann muss ich Sachen wie die ENV's und das LABEL anpassen?
Meine Fragen zum Install-Script: Möchte darin kein "apt-get update" etc. haben, da ich multi-stage builds verwenden möchte und somit diese Befehle nur im FROM Image benutzt werden sollen (wenn irgendwie möglich). Wie ich sehe installiert er aber ja Sachen nach: "# install dependencies apt-get --no-install-recommends -y install apt-transport-https ca-certificates-java curl libimlib2 libimlib2-dev libterm-readline-perl-perl locales memcached net-tools nginx default-jdk shared-mime-info nodejs"
Kann ich davon auch etwas "auslagern", sprich als eigenständigen Container laufen lassen? Den Nginx kann ich ja als eigenständigen Container laufen lassen.
Wie ihr seht tue ich mir damit schon schwer, so dass ich hier auch nicht jeden Befehl aus den einzelnen Dateien aufführen und was dazu fragen möchte.
Edit: Titel angepasst, da schon über 30 mal gelesen...