Docker
Beginner
1 min read
Image Tagging Strategies
Example
#!/bin/sh
# ci/tag-and-push.sh called from CI after tests pass
set -e
IMAGE="myuser/myapp"
VERSION=$(cat VERSION)
MAJOR=$(echo $VERSION | cut -d. -f1)
MINOR=$(echo $VERSION | cut -d. -f1,2)
SHA=$(git rev-parse --short HEAD)
# Build once
docker build -t $IMAGE:$SHA .
# Tag with all variants
docker tag $IMAGE:$SHA $IMAGE:$VERSION
docker tag $IMAGE:$SHA $IMAGE:$MINOR
docker tag $IMAGE:$SHA $IMAGE:$MAJOR
docker tag $IMAGE:$SHA $IMAGE:latest
# Push all tags
docker push $IMAGE:$SHA
docker push $IMAGE:$VERSION
docker push $IMAGE:$MINOR
docker push $IMAGE:$MAJOR
docker push $IMAGE:latest
# Record the digest for audit
DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' $IMAGE:$VERSION)
echo "Pushed $IMAGE:$VERSION digest=$DIGEST" >> release-notes.txt
Related Resources
Docker Reference
Complete tag & property list
Docker How-To Guides
Step-by-step practical guides
Docker Exercises
Practice what you've learned
More in Docker