2017-12-08 8 views

答えて

0

私は以前、この要件を持っていたと私はapache2の1DAYに対して実行bashスクリプト、 に& &睡眠86400を開始

サービスのようなスクリプトファイルに睡眠86400を使用していました。

さもなければ、あなたは決して明示的にこれを行う機能で構築されたありません

stop and delete docker container if its running

+0

99,999秒は27.77時間、1日は86400秒が必要です。 – BMitch

+0

それは1日のために私がテスト環境だったのでちょうど99999を使用しました、正確な1日の答えを更新します –

2

を説明し、このスレッドを通過することができます。しかし、いくつかの場所でソリューションをハックアップすることができます。コンテナ内


、あなたが実行エントリポイント持つことができます。

#!/bin/sh 
(sleep 86400 && kill 1 && sleep 10 && kill -9 1)& 
exec "[email protected]" 

、一日寝SIGTERMを送信するにプロセスに10秒を与えるバックグラウンドでサブシェルを実行します正常終了し、SIGKILLを送信します。最後の幹部は、あなたが一日の後に、PID 1を殺すためにヘルスをハイジャックすることができますCMD


1. PIDとして実行されます。ヘルスチェックが実行されたときにタイムアウトを使用するか、他の目的で定期的なヘルスチェックが必要な場合は psコマンドでプロセスの開始時刻を調べることができます。容器の外側


、あなたはおそらくcronの中で、スクリプトを実行することができ、docker psの出力をチェックすること、のためにgrepする「アップ。*日」、および選択的にマッチした行のdocker rm -fを実行します。私はdocker psの場合は--formatオプションを使用してスクリプトを作成し、コンテナのラベルを使用してこのアクションを実行するコンテナを制限することをお勧めします。

関連する問題