Mailcow findet Docker Compose nicht

  • Hallo alle zusammen,

    Ich versuche gerade entsprechend dieser Anleitung: https://community.netcup.com/d…-mailserver-with-mailcow/

    einen Mailserver auf meinem Rootserver einzurichten.

    Bei Schritt 3 bekomme ich jedes mal den Fehler:


    Cannot find Docker Compose with a Version Higher than 2.X.X.

    Please update/install it manually regarding to this doc site: https://mailcow.github.io/mail…docs/i_u_m/i_u_m_install/


    Wenn ich aber mit docker version die Docker Version prüfe, dann habe ich hier die 20.10.21, docker compose version ergibt die Version v2.2.3.

    Laut diesem Supportartikel von Mailcow:


    You need Docker (a version >= 20.10.2 is required) and Docker Compose (a version >= 2.0 is required).


    Sollte das ja eigentlich passen. Also warum erhalte ich den Fehler oben?


    Vielen Dank im Voraus für jegliche Unterstützung!


  • Zur hilfreichsten Antwort springen
  • Achtung! docker compose != docker-compose


    Du brauchst das extra docker-compose binary (Entweder über dein OS installieren, z.B. apt install docker-compose oder über pip (pip install docker-compose). Die haben auch ganz unterschiedliche Versionen. Wenn man nicht viel mit Docker macht, kann das sehr verwirrend sein am Anfang.

  • Achtung! docker compose != docker-compose


    Du brauchst das extra docker-compose binary (Entweder über dein OS installieren, z.B. apt install docker-compose oder über pip (pip install docker-compose). Die haben auch ganz unterschiedliche Versionen. Wenn man nicht viel mit Docker macht, kann das sehr verwirrend sein am Anfang.

    Danke für den Hinweis, ich habe nun die docker-compose standalone installiert, bekomme mit docker-compose version die Version v2.12.2 angezeigt, nur klappt es leider immer noch nicht.

  • Danke für den Hinweis, ich habe nun die docker-compose standalone installiert, bekomme mit docker-compose version die Version v2.12.2 angezeigt, nur klappt es leider immer noch nicht.

    Wie hast du docker-compose denn installiert? So wie in dem Tutorial beschrieben? Bleibt die Fehlermeldung die gleiche? Was genau führst du denn aus? Bei welchem Schritt kommt diese Fehlermeldung?

  • In der Fehlermeldung ist doch die Doc-Seite von Mailcow verlinkt. Falls ich das richtig sehe, wird dort doch explizit die Installation von `docker compose` und **nicht** `docker-compose` gefordert.

    Ich musste auch nochmal nachlesen. Anscheinend gibt es wohl auch ein compose Plugin für docker selbst. War mir selbst auch noch nicht bekannt. Man kann wohl beides nutzen. Das Skript scheint auch beides zu unterstützen. Könnte daher auch durchaus ein Problem mit der $PATH Variable sein (daher auch meine obige Frage wie die Installation durchgeführt wurde).

  • Wie hast du docker-compose denn installiert? So wie in dem Tutorial beschrieben? Bleibt die Fehlermeldung die gleiche? Was genau führst du denn aus? Bei welchem Schritt kommt diese Fehlermeldung?

    Mit apt-get hat es nicht funktioniert, daher habe ich es entsprechend dieser Anleitung gemacht:

    https://docs.docker.com/compose/install/other/


    Der Fehler kommt bei Schritt 3 ./generate_config.sh


    Ursprünglich hatte ich meines Verständnisses nach das plugin als mit dem docker compose command. Jetzt habe ich zusätzlich die standalone mit docker-compose insttaliert. Das Skript scheint aber beides nicht zu finden.

  • Aha!

    version --short sollte eigentlich nur die reine Ziffernfolge liefern, ohne das 'v' vorne dran, also "2.2.3"

    Und genau das testet ja das Skript auch mit grep "^2."

    Wurde das evtl. in der Version 2.2.3 des compose-plugins geändert?

    Du könntest das natürlich im Skript mal korrigieren und testen ob es dann durchläuft.

    • Hilfreichste Antwort

    Ersetze also mal in der Zeile

    Code
    if docker compose version --short | grep "^2." > /dev/null 2>&1; then

    das

    Code
    grep "^2."

    durch

    Code
    grep "^[v]\?2."

    Dann deckst du sicherheitshalber beides ab.

  • Ersetze also mal in der Zeile

    Code
    if docker compose version --short | grep "^2." > /dev/null 2>&1; then

    das

    Code
    grep "^2."

    durch

    Code
    grep "^[v]\?2."

    Dann deckst du sicherheitshalber beides ab.

    Tatsächlich, jetzt funktioniert es! Aber sehr verwunderlich, dass sowas passiert.

    Auf jeden Fall kann ich die Einrichtung jetzt fortsetzen, besten Dank!

  • noahbeeri

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.