Skip to content

Instantly share code, notes, and snippets.

@hankei6km
Created February 26, 2018 03:30
Show Gist options
  • Save hankei6km/afdd048e927f80e69a46f06726bbc019 to your computer and use it in GitHub Desktop.
Save hankei6km/afdd048e927f80e69a46f06726bbc019 to your computer and use it in GitHub Desktop.
docker events コマンドで最初のイベントが発生したらコマンドを停止させる

docker events コマンドで最初のイベントが発生したらコマンドを停止させる

docker events で「コンテナの開始を補足したら docker event を停止させたい」 といったようなときがある(かもしれない).

だが、そういったオプションはないようなのでメモ.

とりあえず以下の方法で停止している(が、しかし、sh だと動かない).

$ sudo bash -c 'head -n 1 <(docker events --filter event=start)'

head の代わりに awk を使う場合.

$ sudo bash -c 'awk '"'"'{s=$0; sub(/[^(]+/, "", s); print s; exit 0}'"'"' <(docker events --filter event=start)'

上記のものよりも汎用性が高そうな以下の方法だと、2つ目のイベントが発生しないと停止しない(原因は不明).

$ sudo docker events --filter event=start | head -n 1

イベントの内容を出力させなくてもよいのならば、以下の方法でも停止した.

$ sudo docker events --filter event=start | exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment