aboutsummaryrefslogtreecommitdiff
path: root/examples/docker_build_snac.sh
diff options
context:
space:
mode:
authordaltux <1medinnz@duck.com>2025-09-04 19:00:34 -0300
committerdaltux <1medinnz@duck.com>2025-09-04 19:00:34 -0300
commitffaa7aeb808c1db3594b5ad1989e20d2154d547c (patch)
treea2466245854438bff8c8d50d2db4b51d2cfc2cfe /examples/docker_build_snac.sh
parent4f5b49bc2476ab6986c3364aa0b88e0cc97040c4 (diff)
Examples: Docker Swarm with Traefik and container build script.
Example files for setting a complete SNAC + Traefik v3 stack on Docker Swarm mode, including Let's Encrypt certificates, HTTP security headers, and caching of */s/* (SNAC static files) for 24 hours with souin. A script for building the SNAC container with Docker and optionally pushing it to a registry.
Diffstat (limited to 'examples/docker_build_snac.sh')
-rwxr-xr-xexamples/docker_build_snac.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/docker_build_snac.sh b/examples/docker_build_snac.sh
new file mode 100755
index 0000000..387aa49
--- /dev/null
+++ b/examples/docker_build_snac.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# docker_build_snac.sh : build a SNAC container image
+# and optionally send it to a container registry.
+#
+# Set variables e.g. if you want version to be different from 'latest':
+# img_version=2.82 ./docker_build_snac.sh
+
+src_dir=${src_dir:-"$HOME/src/snac2"}
+img_name=${img_name:-'snac'}
+img_version=${img_version:-'latest'}
+#registry=${registry:-'codeberg.org'}
+#reg_user=${reg_user:-'daltux'}
+
+if [ -z "$tag" ] ; then
+ if [ -n "$reg_user" ] && [ -z "$registry" ] ; then
+ echo "Missing container registry name. Set variable \"registry\"." >&2
+ exit 10
+ fi
+
+ if [ -z "$registry" ] ; then
+ tag="$img_name:$img_version"
+ elif [ -z "$reg_user" ] ; then
+ echo "Container registry user unknown. Set variable \"reg_user\"." >&2
+ exit 20
+ else
+ tag="$registry/$reg_user/$img_name:$img_version"
+ fi
+fi
+
+if [ -d "$src_dir" ] ; then
+ echo "Entering directory \"$src_dir\"..."
+ cd "$src_dir" || exit $?
+ docker build --no-cache -f Dockerfile -t "$tag" . || exit $?
+else
+ echo "Invalid directory \"$src_dir\"" >&2
+ exit 30
+fi
+
+if [ -n "$registry" ] ; then
+ #docker login "$registry" || $?
+ docker image push "$tag"
+fi
+