boilerplate-lambda-container/containers/hello-openapi/update_dockerfile.sh

30 lines
824 B
Bash

#!/bin/bash
# Function to get latest SHA256 digest
get_latest_digest() {
image_name=$(echo $1 | cut -d'@' -f1)
docker pull $image_name > /dev/null
digest=$(docker inspect --format='{{index .RepoDigests 0}}' $image_name | cut -d'@' -f2)
echo $digest
}
# Update Dockerfile
update_dockerfile() {
old_line=$1
new_digest=$2
new_line=$(echo $old_line | sed "s|@sha256:[a-f0-9]*|@$new_digest|")
sed -i "s|$old_line|$new_line|" Dockerfile
echo "Updated: $new_line"
}
# Process Dockerfile
while IFS= read -r line
do
if [[ $line == FROM* && $line == *@sha256:* ]]; then
image=$(echo $line | awk '{print $2}')
new_digest=$(get_latest_digest $image)
update_dockerfile "$line" "$new_digest"
fi
done < Dockerfile
echo "Dockerfile updated with latest SHA256 digests."