Fehler bei docker-compose - bash script

Es gibt 23 Antworten in diesem Thema, welches 2.449 mal aufgerufen wurde. Der letzte Beitrag () ist von ꧁𓊈𒆜 ƁєηLυє 𒆜𓊉꧂.

  • Hallo zusammen,


    ich möchte mir die aktuelle Alpha von WBB Framework runterladen. Beim Starten des Docker Containers läd die Datei start-container.sh zwar mit, jedoch wird das tar.gz File nicht mittels curl heruntergeladen und es wird ein leeres tar.gz Archiv erstellt! habe ich eine option im curl Befehl vergessen?

    Aktuelle Alpha Files: https://github.com/WoltLab/WCF/tags

    LG


    hastebin

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Meine ersten Gedanken:

    • Wird denn das "richtige", wenn auch leere, Archiv erstellt? Meine Frage bezieht sich auf $1.
    • Lass' Dir doch Deine Variablen ausgeben, bevor Du sie in einem Befehl verwendest. Vielleicht wird da etwas nicht richtig übergeben - z.B. schon $1.

    :clinking_beer_mugs:

  • Meine ersten Gedanken:

    • Wird denn das "richtige", wenn auch leere, Archiv erstellt? Meine Frage bezieht sich auf $1.

    :clinking_beer_mugs:

    Ja, der Archivname passt, jedoch fehlen die Dateien install.php und test.php. Wie bereits schon erwähnt, die File wird scheinbar nicht heruntergeladen, daher exestieren die anderen files nicht!

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • und es wird ein leeres tar.gz Archiv erstellt!

    Wirklich leer ? Mach mal ein cat auf das Archive...


    Könnte mir vorstellen das da

    HTML
    <html><body><h1>400 Bad request</h1>
    Your browser sent an invalid request.
    </body></html>


    Drinnensteht...


    der link für die "6.0.0_Alpha_8“ währe nämlich dieser hier...

    https://github.com/WoltLab/WCF/archive/refs/tags/6.0.0_Alpha_8.tar.gz


    Wenn ich richtig überfliege fehlt aber das „tar.gz“ beim CURL Aufruf deinem Script.


    Da müsste dann eher so ausehen (nicht getestet)

    "curl -sL -o "WCF-$REF.tgz" "https://github.com/WoltLab/WCF/archive/refs/tags/${REF}.tar.gz

  • Manchmal sieht man den Wald voller Bäume nicht mehr. Danke für den Hinweis. Gleich mal testen :smiling_face:

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Hmmm so wie es aussieht, läd er das File mit den abgeänderten Code nicht. Eine genaue Ausgabe von der Console:


    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Hmmm so wie es aussieht, läd er das File mit den abgeänderten Code nicht. Eine genaue Ausgabe von der Console:


    Wieso denn ditte: gzip: invalid magic?


    Wo kommt das denn her? :thinking_face: Aus Zeile 23? Da steht doch tar, nicht gzip.

  • Wieso denn ditte: gzip: invalid magic?


    Wo kommt das denn her? :thinking_face: Aus Zeile 23? Da steht doch tar, nicht gzip.

    IdK, laut bashscript wird ja nur mit tar gearbeitet! Hab das hier gefunden: https://www.linuxquestions.org…zip-invalid-magic-276724/

    Die Datei kann ich manuell downloaden und öffnen!

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Ahh noch ein paar Bäume...

    das Tar ist mit GZ gepackt.. daher auch tar.gz oder tgz... das passt..er Lädt nicht runter weil die Regex meinst das ist nicht valide... Sekunde

    Ich muss mich mal mit der Regex Thematik beschäftigen, bis jetzt bin ich immer drum rum gekommen! :smiling_face:

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Gummel ich dachte ich hätte es abgeschickt...


    ein "./test.sh /home/gierig/123 6.0.0_Alpha_8" lädt runter packt aus und im install Verzeichnis (123 bei mir) tauchen

    install.php und test.php auf...


    Code
    if [[ "$REF" =~ ^[0-9]+\.[0-9]+$ ]] || [[ "$REF" == "master" ]] || [[ "$REF" == "main" ]]; then
      curl -sL -o "WCF-$REF.tgz" "https://github.com/WoltLab/WCF/archive/refs/tags/${REF}.tar.gz"
    elif [[ "$REF" =~ ^[0-9]+\.[0-9]+\.[0-9].*$ ]]; then
      curl -sL -o "WCF-$REF.tgz" "https://github.com/WoltLab/WCF/archive/refs/tags/${REF}.tar.gz"
    else
      echo "Don't know what to do with version '$REF'" >> "$INSTALL_DIR/setup.log"
    exit
    fi


    Änderung vorher:

    elif [[ "$REF" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]];

    Hinterher:
    elif [[ "$REF" =~ ^[0-9]+\.[0-9]+\.[0-9].*$ ]];


    (natürlich mit der tar.gz Erweiterung des curl aufrufes von vorher)




    Ich muss mich mal mit der Regex Thematik beschäftigen, bis jetzt bin ich immer drum rum gekommen!

    Schöne Seite zum testen für alle möglichen Dialekte

    regex101: build, test, and debug regex
    Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
    regex101.com


    Anleitungen gibts nen häufen nach Geschmack und Wissen:


    https://wiki.ubuntuusers.de/grep/ (regex mit grep ist mächtig)

    Regex Cheat Sheet

    Einmal editiert, zuletzt von gierig ()

  • Irgendwie klappt das im zusammenhang mit docker nicht:


    Log:


    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Bei den Docker kram bin dann raus, sorry.


    Wird das Script den überhaupt mit den richitgen Parametern gestartet ?

    At least must ja irgendwo der Parameter für Directory und Version herkommen..

    Passiert das nicht mit der Variabel: $REF?


    REF="$2" if [[ "$REF" == "6.0" ]]; then
    REF="master"
    fi


    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Gummel ich dachte ich hätte es abgeschickt...

    Entschuldige bitte. Vielleicht war ich mit dem Zusammenfügen der Postings zu schnell.


    Mea culpa.

  • Entschuldige bitte. Vielleicht war ich mit dem Zusammenfügen der Postings zu schnell.

    Ahhh Fremdverschulden :smiling_face: Alles gut..


    Passiert das nicht mit der Variabel: $REF?


    REF="$2" if [[ "$REF" == "6.0" ]]; then
    REF="master"
    fi


    Na ja $REF wird durch $2 gesetzt und das ist der zweite Parameter mit der das Script aufgerufen wird.

    Wenn $REF = „6.0“ ist dann wird $REF umgeschrieben auf „master“ sonst passiert nichts.

    ohne (zweiten) Parameter bleibt in diesen Script $REF leer.



    in deinem Docker / Composer Script wird es ja auch aufgerufen ganz unten:

    ENTRYPOINT start-container /wsc $WSC_VERSION



    $WSC_VERSION mus dabei die Version enthalten... woher der Wert dann auch immer kommen mag...

  • Gummel ich dachte ich hätte es abgeschickt...


    ein "./test.sh /home/gierig/123 6.0.0_Alpha_8" lädt runter packt aus und im install Verzeichnis (123 bei mir) tauchen

    install.php und test.php auf...

    Kannst du mir mal alle 3 Sachen ins Archiv schieben und mir schicken oder einfach die test.sh?

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • Meine test.sh ist simple der erste teil deines Scripts...



    nur mit den Modifikationen für Curl und die regex.

    Den Rest habe ich weggelassen weil wegen Docker und co.


    Wenn du die Files haben willst die darin sind...

    die install.php und setup.php sind im Archive im wcfsetup Verzeichnis.

    das letzte kannst du dir so runterladen mit

    curl -L -o "6.0.0_Alpha_8.tar.gz" "https://github.com/WoltLab/WCF/archive/refs/tags/6.0.0_Alpha_8.tar.gz"

  • Meine test.sh ist simple der erste teil deines Scripts...



    nur mit den Modifikationen für Curl und die regex.

    Den Rest habe ich weggelassen weil wegen Docker und co.

    ⢀⣴⠾⠻⢶⣦⠀ Debian - The universal operating system user
    ⣾⠁⢠⠒⠀⣿⡁ https://www.debian.org
    ⢿⡄⠘⠷⠚⠋⠀
    ⠈⠳⣄⠀

    :right_arrow: Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch) :left_arrow:

  • nun wie schon gesagt... zwei Parameter werden erwartet.

    Install Verzeichnis (muss existieren) und Version zum installieren.


    also sowas wie


    ./test.sh /home/gierig/123 6.0.0_Alpha_

    das install Verzeichnis (/home/gierig/123 in meinen fall muss auch leer sein soweit)


    Das script wird ja auch in deinem Composer mit zwei Parametern aufgerufen:

    ENTRYPOINT start-container /wsc $WSC_VERSION

    Install Verzeichnis /wsc und einer Variablen die Irgendwo her kommt und gefüllt sein muss (mit der Version)

    Das wird bei dir wohl dann eher nicht passieren (warum auch immer)

    Evt ist dann auch das Original Script völlig richtig wenn da das richtige übergeben wird.


    Aber das steht und fällt halt mit den richitgen Aufruf...