Skip to content

Instantly share code, notes, and snippets.

@DevDavido
Created December 2, 2021 22:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DevDavido/1a0e7d3a49cff97ae7c044732d2697d9 to your computer and use it in GitHub Desktop.
Save DevDavido/1a0e7d3a49cff97ae7c044732d2697d9 to your computer and use it in GitHub Desktop.
Check dockerfiles for updates and rebuild service with docker compose. Download https://gitlab.com/MatthiasLohr/omnibus-gitlab-management-scripts/-/blob/main/docker-image-update-check.sh as docker-image-update-check.sh in the same directory.
#!/bin/bash -e
# Set path of docker project folder to search for dockerfiles
DOCKER_PROJECT_PATH=./docker
# Check for required file/command
if [[ ! -f docker-compose.yml ]]; then
echo "Required file (docker-compose.yml) not existent for docker updater" >&2
exit 1
fi
if [[ ! -x "$(command -v docker)" || ! -x "$(command -v docker compose)" ]]; then
echo "Required command docker (compose) not existent for docker updater" >&2
exit 1
fi
# Start update check and pull process
echo "Pull new images..."
DOCKER_IMAGE_UPDATE_CHECK_OUTPUT=$(
find ${DOCKER_PROJECT_PATH} -name "Dockerfile" -exec cat {} + | \
awk '/FROM/ {print $2}' | sort | uniq -i | \
xargs -r -I {} ./docker-image-update-check.sh {} "docker pull {} --quiet"
)
echo ${DOCKER_IMAGE_UPDATE_CHECK_OUTPUT}
if [[ ${DOCKER_IMAGE_UPDATE_CHECK_OUTPUT} != *"Update available"* ]]; then
echo "No updates available... Bye! 👋"
exit 0
fi
echo "Build images..."
docker compose build --pull --quiet
echo "Finished!"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment