docker-volume-borg-backup/localstack-part-3/docker-events-listener-build/listen-docker-events.sh

27 wiersze
1.0 KiB
Bash

#!/bin/bash
docker events --filter 'event=create' --filter 'event=start' --filter 'type=container' --format '{{.Actor.Attributes.name}} {{.Status}}' | while read event_info
do
event_infos=($event_info)
container_name=${event_infos[0]}
event=${event_infos[1]}
echo "$container_name: status = ${event}"
if [[ $APPLY_TERRAFORM_ON_START == "true" ]] && [[ $container_name = "localstack" ]] && [[ $event == "start" ]]; then
terraform init
terraform apply --auto-approve
echo "The terraform configuration has been applied."
if [[ -n $INVOKE_LAMBDAS_ON_START ]]; then
echo "Invoking the lambda functions specified in the INVOKE_LAMBDAS_ON_START env variable"
while IFS=' ' read -ra lambdas; do
for lambda in "${lambdas[@]}"; do
echo "Invoking ${lambda}"
aws lambda invoke --function-name ${lambda} --endpoint-url=http://localstack:4574 output.txt &
done
done <<< "$INVOKE_LAMBDAS_ON_START"
fi
fi
done