2016-12-02 18 views
1

私は自分のPythonツールがインストールされたDockerコンテナを持っています。私のLuigiパイプラインインターフェイスも含めています。私はcronを使用して毎週Luigiパイプラインを起動するシェルスクリプトを実行したいと思います。Dockerコンテナ内でスケジュールされたcronジョブを実行するためのソリューション?

私はDockerコンテナ内でcronを動作させるために高低を試しました。私の人生のために、私のcrontab -eファイルを実行することはできません。私が持っている私のファイルで

:新しい行が続く

0 0 * * Sun /data/myscript.sh

。 Cronはバックグラウンドで実行されています - ps aux | grep cronは、/usr/sbin/cronが実行中であることを示しています。さらに、私の/var/log/syslogファイルで、私が持っている:

/USR/SBIN/CRON[2037]: (root) CMD (/data/myscript.sh)

私も0 0 * * Sun . /root/.bashrc ; sh /data/myscript.sh

を使用して試してみたが、私のスクリプトは、私はbash myscript.shを使用して手動で私のスクリプトを実行したときに、私が取得(実行されません。予想された結果)。

提案?

+0

[docker内でcron pythonジョブを実行する]の可能な複製(http://stackoverflow.com/questions/26822067/running-cron-python-jobs-within-docker) – R0MANARMY

答えて

6

スケジューラが実行されていないため、スケジューリングされたタスクは通常のコンテナ内では実行されません。アクティブなタスクは、CMDキーワードまたはEntrypointを使用して実行するタスクだけです。 (

:だからあなたのようなあなたのホストの何かにはcronで終わるでしょう

docker exec <container> <command> 
docker exec <container> /data/myscript.sh 

:スケジュールタスクを実行するために

は、それがホストスケジューラとドッキングウィンドウのEXECコマンドを利用する方が賢明ですCrontab Style) 0 * * * *ルートドッカーexec mycontainer /data/myscript.sh

クラスタを使用している場合は、最初にクラスタにクエリを実行してコンテナを検索するか、またはスクリプトを実行する必要があります君は。

関連する問題