In this article I want to paste a code snippet which is checking it’s filtered subfolders for docker-compose files and pulls and ups automagically.
Here it is!
#!/bin/bash
# our docker base folder
DOCKER_BASE_DIR="/home/user/docker"
# folders to exclude from udpate
DIRS_TO_EXCLUDE=("code" "snacklish" "nginx-proxy" "psono")
# docker-compose binary location
DC=$(which docker-compose)
cd ${DOCKER_BASE_DIR}
for D in *; do
# if is directory and not excluded
if ([ -d "${D}" ] && [[ ! " ${DIRS_TO_EXCLUDE[@]} " =~ " ${D} " ]]); then
cd ${D}
echo "I am in $(pwd)"
if [ -f "./docker-compose.yaml" ]; then
echo "I found a docker-compose.yaml, updating ..."
${DC} pull && ${DC} up -d && cd ..
else
echo "No docker-compose.yaml found, stepping back"
cd ..
fi
fi
done
Oriented on Selenium acceptance tests, I have designed the output to be as readable and as debuggable as possible.