43 lines
1.1 KiB
Bash
Executable File
43 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
current_image=""
|
|
|
|
while true; do
|
|
image_target_name=$(cat "$(pwd)/container/image_target_name")
|
|
base_image_name=$(cat "$(pwd)/container/image_base")
|
|
|
|
if [ -z "$image_target_name" ]; then
|
|
sleep 30
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$base_image_name" ]; then
|
|
sleep 30
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$current_image" = "$image_target_name" ]; then
|
|
echo "$current_image already pushed"
|
|
sleep 30
|
|
continue
|
|
fi
|
|
current_image=$image_target_name
|
|
|
|
export ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
|
|
export AWS_REGION=$(aws configure get region)
|
|
release_image="$ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/esd_container:$image_target_name"
|
|
|
|
aws ecr get-login-password --region "$AWS_REGION" | docker login --username AWS --password-stdin "$ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com"
|
|
docker tag "$base_image_name" "$release_image"
|
|
docker push "$release_image"
|
|
|
|
untagged_images=$(docker images --filter "dangling=true" -q)
|
|
for image_id in $untagged_images; do
|
|
docker rmi -f "$image_id"
|
|
done
|
|
|
|
sleep 5
|
|
done
|
|
|
|
exit 1
|