2016-11-21 4 views
0

私は画像の構築を自動化するドッカーファイルを持っています。Docker、dockercloud、Cron

私はサーバとしてDigital Oceanに接続されたドッカークラウドを使用しています。

私のドッカーファイルの中に、私が必要とするソフトウェアを入手し、実行したいpythonスクリプトを含む関連するGitHubリポジトリを追加します。次に、cronスケジューラーを起動し、スクリプトを適切な時間に追加します。たとえば: cron_files.txtファイルには、次のようになります。

0 12 * * * /usr/bin/python /home/dir/run_check.py

私dockerfileで

0 15 * * * /usr/bin/python /home/dir/run_push.py

、私は次の操作を行います。ログファイルには

RUN service cron start 
RUN service cron status 
RUN crontab -u root cron_files.txt 

、私ができますcronが正常に開始されたことを確認してください。

編集、このためr0manarmyのおかげ - How to run a cron job inside a docker container?

# Add crontab file in the cron directory 
ADD crontab /etc/cron.d/hello-cron 

# Give execution rights on the cron job 
RUN chmod 0644 /etc/cron.d/hello-cron 

# Create the log file to be able to run tail 
RUN touch /var/log/cron.log 

# Run the command on container startup 
CMD cron && tail -f /var/log/cron.log 

どのように私はcron_files.txtからcrontabファイルではなく、上記の例を作成するために、上記を編集するには?

私はADD crontab cron_files.txt /etc/cron.d/feeds

を試みた。しかし、これは返します

ADD crontab cron_files.txt /etc/cron.d/feeds 
lstat crontab: no such file or directory 

Psと。

これを行うためには、ちょうど高山のlinux、たとえば、上のcrondのコマンドを使用します。私はあなたがおそらくCMDようにcronを設定したいFROM debian:jessie

+0

あなたDockerfile内でcmdを実行していない場合は、コンテナが実際に実行されることはありません。 CMDディレクティブで実行するには、何かが必要です。 cronからコマンドを実行するための要件は何ですか? – jaxxstorm

+0

ありがとうございます。そうですか。私は、異なる時間(1時間ごと、毎日特定の時間など)で実行したい一連のWebクローラーを持っているので、cronを使用しています。私はこれがDockerfileの 'RUN crontab -u root cron_files.txt'にあるものを開始すると思っていました。cron_files.txtには実際に動作するcronコマンドが含まれています – LearningSlowly

+1

' RUN'は一度の操作を実行しますが、操作を実行する前に私の答えが来るのを見てください。 – jaxxstorm

答えて