Main /

Docker Varnishlog Scripten

Docker Varnishlog Scripten

Docker varnishlog scripten

Es geht darum ein Script bereitzustellen, dem Parameter übergeben werden können, die an Docker weitergereicht werden.

 #!/bin/bash
 SCRIPTNAME=$(basename ${0/.sh/ })
 if [[ "$#" -lt 1 ]]; then
    quoted_args=""
 else
    quoted_args="$(printf " %q" "${@}")"
 fi
 docker exec -it varnish sh -c $SCRIPTNAME ${quoted_args}

Das obige Script wird wie folgt aufgerufen:

 ./varnishlog.sh -q 'ReqURL ~ blog'

Leider geht das nicht, wie ich es mir vorstelle, es wird nicht nach "blog" gefiltert.

Logge ich mich im Varnish direkt ein per:

 docker exec -it varnish sh

kann man

 varnishlog -q 'ReqURL ~ blog'

aufrufen und es funktioniert wie erwartet.

Die Lösung

 docker exec -it varnish sh -c "$SCRIPTNAME ${quoted_args}"

Die Quotes beim Shell-Aufruf und schon klappt es, das soll jemand verstehen.

Frische Änderungen | Menü editieren
zuletzt geändert am 04.07.2019 08:50 Uhr von Lars
Edit Page | Page History