stable-diffusion-aws-extension/docker_image.sh

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