Move to Alpine linux
Based on https://github.com/sanjeevan/baseimage Image size reduced from 232MB to 90MB Also make the change monitors more like services that restart if they crash
This commit is contained in:
56
boot.sh
Executable file
56
boot.sh
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Based on https://github.com/sanjeevan/baseimage
|
||||
|
||||
shutdown() {
|
||||
echo
|
||||
echo "Shutting down container..."
|
||||
|
||||
# first shutdown any service started by runit
|
||||
for _srv in $(ls -1 /etc/service); do
|
||||
sv force-stop $_srv
|
||||
done
|
||||
|
||||
# shutdown runsvdir command
|
||||
kill -HUP $RUNSVDIR
|
||||
wait $RUNSVDIR
|
||||
|
||||
# give processes time to stop
|
||||
sleep 0.5
|
||||
|
||||
# kill any other processes still running in the container
|
||||
for _pid in $(ps -eo pid | grep -v PID | tr -d ' ' | grep -v '^1$' | head -n -6); do
|
||||
timeout -t 5 /bin/sh -c "kill $_pid && wait $_pid || kill -9 $_pid"
|
||||
done
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
# catch shutdown signals
|
||||
trap shutdown SIGTERM SIGHUP SIGQUIT SIGINT
|
||||
|
||||
# store environment variables
|
||||
export > /etc/envvars
|
||||
|
||||
PATH=/bin:/sbin:/usr/bin
|
||||
|
||||
# run all scripts in the run_once folder
|
||||
if ! /bin/run-parts /etc/run_once
|
||||
then
|
||||
echo "Run-once scripts failed. Stopping container"
|
||||
shutdown
|
||||
fi
|
||||
|
||||
exec env - PATH=$PATH runsvdir -P /etc/service &
|
||||
|
||||
RUNSVDIR=$!
|
||||
echo "Started runsvdir, PID is $RUNSVDIR. Waiting for processes to start...."
|
||||
|
||||
sleep 5
|
||||
for _srv in $(ls -1 /etc/service); do
|
||||
sv status $_srv
|
||||
done
|
||||
|
||||
wait $RUNSVDIR
|
||||
|
||||
shutdown
|
||||
Reference in New Issue
Block a user