-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathedit_dockerfile.sh
29 lines (24 loc) · 970 Bytes
/
edit_dockerfile.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# !/bin/bash
set -e
PARENT_IMAGE_NAME="refinery-parent-images"
PARENT_IMAGE_TYPE=""
RELEASE_TAG=""
DOCKER_REGISTRY="kernai"
DOCKERFILE="Dockerfile"
while getopts i:t:l:r:d: flag
do
case "${flag}" in
i) PARENT_IMAGE_NAME=${OPTARG};;
t) PARENT_IMAGE_TYPE=$(echo ${OPTARG} | sed 's|_|-|g');;
l) RELEASE_TAG=${OPTARG};;
r) DOCKER_REGISTRY=${OPTARG};;
d) DOCKERFILE=${OPTARG};;
esac
done
grep "${DOCKER_REGISTRY}/${PARENT_IMAGE_NAME}" $DOCKERFILE | while read -r line ; do
PI_EXISTING_TAG=$(echo $line | sed 's|FROM ||g' | cut -d ':' -f 2)
PI_EXISTING_IMAGE="${DOCKER_REGISTRY}/${PARENT_IMAGE_NAME}:${PI_EXISTING_TAG}"
PI_NEW_IMAGE="${DOCKER_REGISTRY}/${PARENT_IMAGE_NAME}:${RELEASE_TAG}-${PARENT_IMAGE_TYPE}"
sed "s|${PI_EXISTING_IMAGE}|${PI_NEW_IMAGE}|g" ${DOCKERFILE} > ${DOCKERFILE}.tmp && mv ${DOCKERFILE}.tmp ${DOCKERFILE}
echo "::notice::Dockerfile updated with new image: ${PI_NEW_IMAGE}"
done