前フリ
たまに docker system prune
そして docker volume prune
するのが日課になっているdocker
使いの人は多いんじゃないでしょうか。
私はそうです。
この一回一回はたいしたことないけど、めんどくさい作業をなくしましょう。
シグナルを捕まえて後処理する
ぶっちゃけそんだけです。
Ctrl+C した時のSIGINT
、killした時のSIGTERM
、プロセス再起動時のSIGHUP
あたりを捕まえとけばいいんじゃないでしょうか。
start_docker.sh
#!/bin/sh
down() {
echo "clean up containers..."
docker-compose down
docker volume prune #この辺はお好みで
echo "done."
}
trap down HUP TERM INT;
echo "Start up containers (press Ctrl+C for stop) ..."
docker-compose up
trapで、SIGINT
,SIGTERM
,SIGHUP
を捕まえてdown()で定義した後処理を実行します。
これ結構応用が効いて、docker-entrypoint.sh
の中でtrap
してやればコンテナが落ちた時の後処理もかけます。
ではよい trap docker ライフを。