#!/bin/sh # Dieses Skript ruft Docker zum Start eines Containers mit Groovy und startet # darin das Groovy-Skript bilder.groovy. # # Nach jedem solchen Durchlauf wird der Container wieder geloescht. # # Besagtes Docker Kommando reicht das augenblickliche Arbeitsverzeichnis # der Maschine, auf der Docker laeuft, als Pfad /scripts an den # Docker Container. Auf diese Weise koennen Bilder im Dateisystem der Maschine, # auf der Docker laeuft, verwendet werden. # # Aufruf mit ./kleiner.sh [groesse] [qualitaet] [eingangsordner] [ausgangsordner] # Beispiel ./kleiner.sh 1200 0.75 /scripts/in /scripts/out # # Liegen dieses Skript (kleiner.sh) und das Groovy-Skript bilder.groovy # im Pfad /scripts und enthält dieser Pfad die Verzeichnisse in und out # wird mit dem Aufruf von kleiner.sh das Groovy-Skript ausgefuehrt. # # Der Aufruf mit den im Beispiel oben angegebenen Parametern bewirkt, dass alle # Bilddateien in /scripts/in auf eine Laenge von 1.200 Bildpunkten entlang # der laengsten Kante verkleinert, in der Qualitaet auf 75% des Originals # verringert und in /scripts/out abgelegt werden. # # # Erlaeuterung des unten stehenden Docker-Kommandos # ------------------------------------------------- # # Die Option -v im docker run Kommando verbindet einen Ablageort mit einem # Ordnernamen nach dem Schema [Ablageort]:[Ordnername] # # Die Option -w setzt das Arbeitsverzeichnis auf einen Ordner # # Die Kombination aus -v und -w im Kommando unten tut so, als gaebe es im # Docker-Container einen Ordner /scripts und laesst diesen auf das # Arbeitsverezichnis der lokalen Maschine verweisen, auf der Docker laeuft. # Dieses Verzeichnis wird dann das Arbeitsverzeichnis fuer den Docker-Container # # Der Ausdruck "$PWD" ist ein Platzhalter (Print Working Directory) und # bewirkt, dass an dessen Stelle der Pfad des aktuellen # Arbeitsverzeichnisses ausgegeben wird # # --name groovy bedeutet Docker einen Container namens groovy anzulegen # --rm bedeutet Docker den Container nach der Ausführung wieder zu entfernen # groovy:alpine gibt Docker die Ablaufumgebung an, die dem Container zugrunde # liegen soll # groovy bilder.groovy ist schliesslich das Kommando, das der Container # ausfuehren soll. Es soll also das Skript bilder.groovy in der # Ablaufumgebung Groovy ausgefuehrt werden # dahinter werden die Parameter weiter gereicht, die diesem Skript (kleiner.sh) # uebergeben wurden docker run --rm -v "$PWD":/scripts -w /scripts --name groovy groovy:alpine groovy bilder.groovy $1 $2 $3 $4