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.