Tag and Deploy to Docker
I have a bunch of personal services which I deploy using Docker. One issue I was constantly struggling with is how to know from which Git revision Docker container was built - and how can I go to that revision easily.
While in “serious” development you’d use a CI server and some form of release process, for my toy service I ended up hacking together a very simple script that gives me just enough to get the job done:
#!/usr/bin/env sh
set -x
# This creates a git tag name with the current date and time
tag=`date --iso-8601`T`date +%H-%M`
echo "Creating git tag $tag"
# Create and push the tag
git tag $tag
git push --tags
# Store the tag name to a file which will be eventually picked up in Docker build
echo $tag > version.txt
echo "Starting docker compose"
# Building and deploying the service using Docker Compose
docker compose up --build -d
While this is rudimentary, at the very least, at any moment in time, I can figure which codebase container was built from.
February 26, 2023 ∙