diff --git a/Dockerfile b/Dockerfile
index c4454e2f..f80de905 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM debian:buster
+FROM debian:VERSION
 MAINTAINER Adrian Dvergsdal [atmoz.net]
 
 # Steps done in one RUN layer:
diff --git a/Dockerfile-alpine b/Dockerfile-alpine
index 72a28c76..5d48dc2e 100644
--- a/Dockerfile-alpine
+++ b/Dockerfile-alpine
@@ -1,4 +1,4 @@
-FROM alpine:latest
+FROM alpine:VERSION
 MAINTAINER Adrian Dvergsdal [atmoz.net]
 
 # Steps done in one RUN layer:
diff --git a/alpine.sh b/alpine.sh
new file mode 100755
index 00000000..cf8b8cc5
--- /dev/null
+++ b/alpine.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]; then
+    echo "$0 version"
+    echo "builds image with alpine <version>, i.e. '3.14'"
+    exit 1
+fi
+
+set -e
+
+version=$1; shift
+
+tmp=$(mktemp)
+tag=atmoz/sftp:alpine-$version
+
+sed "s/alpine:VERSION/alpine:$version/" Dockerfile-alpine > $tmp
+docker build -t "$tag" -f "$tmp" .
+docker push "$tag"
+rm -f "$tmp"
diff --git a/debian.sh b/debian.sh
new file mode 100755
index 00000000..02f01ad0
--- /dev/null
+++ b/debian.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]; then
+    echo "$0 version"
+    echo "builds image with debian <version>, i.e. 'bullseye'"
+    exit 1
+fi
+
+set -e
+
+version=$1; shift
+
+tmp=$(mktemp)
+tag=atmoz/sftp:debian-$version
+
+sed "s/debian:VERSION/debian:$version/" Dockerfile > $tmp
+docker build -t "$tag" -f "$tmp" .
+docker push "$tag"
+rm -f "$tmp"