From d81bd6e56d0bff19f2a9b6da87a6060d26321489 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Mon, 22 Oct 2018 22:19:40 +0200 Subject: [PATCH] Add dtool Signed-off-by: Knut Ahlers --- .config/dtool/ffmpeg/Dockerfile | 9 +++++++++ .config/dtool/imagick/Dockerfile | 8 ++++++++ bin/dtool | 26 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 .config/dtool/ffmpeg/Dockerfile create mode 100644 .config/dtool/imagick/Dockerfile create mode 100755 bin/dtool diff --git a/.config/dtool/ffmpeg/Dockerfile b/.config/dtool/ffmpeg/Dockerfile new file mode 100644 index 0000000..00ac0ce --- /dev/null +++ b/.config/dtool/ffmpeg/Dockerfile @@ -0,0 +1,9 @@ +FROM alpine:3.8 + +ARG UID=1000 + +RUN set -ex \ + && adduser -u $UID -D work \ + && apk add --no-update ffmpeg + +ENTRYPOINT ["ffmpeg"] diff --git a/.config/dtool/imagick/Dockerfile b/.config/dtool/imagick/Dockerfile new file mode 100644 index 0000000..7fd7865 --- /dev/null +++ b/.config/dtool/imagick/Dockerfile @@ -0,0 +1,8 @@ +FROM alpine:3.8 + +ARG UID=1000 + +RUN set -ex \ + && adduser -u $UID -D work \ + && apk add --no-update imagemagick + diff --git a/bin/dtool b/bin/dtool new file mode 100755 index 0000000..3b35ea2 --- /dev/null +++ b/bin/dtool @@ -0,0 +1,26 @@ +#!/bin/bash +set -euo pipefail + +source ${HOME}/bin/script_framework.sh + +[ $# -lt 1 ] && fail "At least the tool must be specified" + +TOOL=$1 +shift + +toolimage="dtool.local/${TOOL}" + +docker images | grep -q "^${toolimage}" || { + step "Building tool image for \"${TOOL}\"" + toolpath="${HOME}/.config/dtool/${TOOL}" + docker build -q \ + -t "${toolimage}" \ + --build-arg UID=$(id -u) \ + "${toolpath}" +} + +step "Executing \"${toolimage} $@\"..." +exec docker run --rm -ti \ + -u $(id -u) \ + -v "$(pwd):$(pwd)" -w "$(pwd)" \ + "${toolimage}" "$@"