回答編集履歴

1

別戦略を追記。

2022/11/30 01:27

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -1,3 +1,13 @@
1
1
  GNUツールにはtimeoutコマンドというものがあり、それを使うと一定時間後にプロセスを終了させることができます。
2
2
  macOSならbrew install coreutilsでgtimeoutコマンドですね。
3
3
 
4
+ ## 追記
5
+
6
+ コンテナには外部からのシグナルには反応しないみたいでやり方は以下のほうがよさそう。
7
+
8
+ 例えば3秒後に「docker kill $(docker ps -ql)」を実行するみたいなプロセスをバックグラウンドで起動してから
9
+ dockerのコンテナプロセスを起こすというのでうまく止めることができます。
10
+ ```shell
11
+ > sh -c "sleep 3;docker kill \$(docker ps -ql)" & docker run -it --rm alpine sleep 10
12
+ ```
13
+ 「$(docker ps -ql)」を後で評価させるために先頭にバックスラッシュをつけるのがキモです。