44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script to update pinned Docker image versions
|
|
# Run this occasionally to update to newer stable versions
|
|
|
|
set -e
|
|
|
|
echo "🔄 Updating pinned Docker image versions..."
|
|
|
|
# Function to get SHA256 digest for an image
|
|
get_image_digest() {
|
|
local image_name=$1
|
|
echo "📥 Pulling $image_name..."
|
|
docker pull "$image_name" >/dev/null 2>&1
|
|
local digest=$(docker inspect "$image_name" --format='{{index .RepoDigests 0}}' 2>/dev/null)
|
|
if [ -z "$digest" ]; then
|
|
# Fallback: get digest from manifest
|
|
digest=$(docker images --digests "$image_name" --format "{{.Repository}}:{{.Tag}}@{{.Digest}}" | head -1)
|
|
fi
|
|
echo "$digest"
|
|
}
|
|
|
|
echo ""
|
|
echo "🐍 Getting Python 3.11-slim digest..."
|
|
PYTHON_DIGEST=$(get_image_digest "python:3.11-slim")
|
|
echo " $PYTHON_DIGEST"
|
|
|
|
echo ""
|
|
echo "🌐 Getting nginx:alpine-slim digest..."
|
|
NGINX_DIGEST=$(get_image_digest "nginx:alpine-slim")
|
|
echo " $NGINX_DIGEST"
|
|
|
|
echo ""
|
|
echo "📝 Dockerfile to update:"
|
|
echo ""
|
|
echo "docker/Dockerfile should use:"
|
|
echo "FROM ${PYTHON_DIGEST}"
|
|
echo ""
|
|
|
|
echo "💡 To update the Dockerfile:"
|
|
echo "1. Edit docker/Dockerfile line 4"
|
|
echo "2. Replace the existing FROM line with the digest above"
|
|
echo ""
|
|
echo "✅ Done! Your images are now pinned to specific versions."
|
|
echo " This prevents Docker Hub registry issues and ensures reproducible builds." |