seafile-caddy: improved lifecycle management

Exits container if caddy service exits.
This commit is contained in:
Gerrit Gogel 2024-02-14 10:56:35 +01:00
parent db00d4c6b4
commit 94d3ed3e9e
2 changed files with 25 additions and 22 deletions

View file

@ -1,5 +1,11 @@
#!/bin/bash #!/bin/bash
/scripts/swarm-dns.sh & if [ "$SWARM_DNS" = true ]; then
/scripts/swarm-dns.sh &
fi
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile caddy run --config /etc/caddy/Caddyfile --adapter caddyfile &
wait -n
exit $?

View file

@ -1,28 +1,25 @@
#!/bin/bash #!/bin/bash
if [ "$SWARM_DNS" = true ]; then cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.default
cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.default while true; do
while true; do SEAHUB_IPS=$(dig +short $SEAHUB_HOSTNAME | sed -e 's/$/:8000/' | tr ' ' '\n' | sort | tr '\n' ' ')
SEAHUB_MEDIA_IPS=$(dig +short $SEAHUB_MEDIA_HOSTNAME | sed -e 's/$/:80/' | tr ' ' '\n' | sort | tr '\n' ' ')
SEAHUB_IPS=$(dig +short $SEAHUB_HOSTNAME | sed -e 's/$/:8000/' | tr ' ' '\n' | sort | tr '\n' ' ') cp /etc/caddy/Caddyfile.default /etc/caddy/Caddyfile.tmp
SEAHUB_MEDIA_IPS=$(dig +short $SEAHUB_MEDIA_HOSTNAME | sed -e 's/$/:80/' | tr ' ' '\n' | sort | tr '\n' ' ')
cp /etc/caddy/Caddyfile.default /etc/caddy/Caddyfile.tmp sed -i "s/$SEAHUB_HOSTNAME:8000/$(echo $SEAHUB_IPS)/g" /etc/caddy/Caddyfile.tmp
sed -i "s/$SEAHUB_MEDIA_HOSTNAME:80/$(echo $SEAHUB_MEDIA_IPS)/g" /etc/caddy/Caddyfile.tmp
sed -i "s/$SEAHUB_HOSTNAME:8000/$(echo $SEAHUB_IPS)/g" /etc/caddy/Caddyfile.tmp if ! diff -q "/etc/caddy/Caddyfile" "/etc/caddy/Caddyfile.tmp"; then
sed -i "s/$SEAHUB_MEDIA_HOSTNAME:80/$(echo $SEAHUB_MEDIA_IPS)/g" /etc/caddy/Caddyfile.tmp rm -f /etc/caddy/Caddyfile
mv /etc/caddy/Caddyfile.tmp /etc/caddy/Caddyfile
echo "Applying new Caddyfile:"
cat /etc/caddy/Caddyfile
caddy reload --config /etc/caddy/Caddyfile
fi
if ! diff -q "/etc/caddy/Caddyfile" "/etc/caddy/Caddyfile.tmp"; then sleep 10
rm -f /etc/caddy/Caddyfile
mv /etc/caddy/Caddyfile.tmp /etc/caddy/Caddyfile
echo "Applying new Caddyfile:"
cat /etc/caddy/Caddyfile
caddy reload --config /etc/caddy/Caddyfile
fi
sleep 10 done
done
fi