私は画像の構築を自動化するドッカーファイルを持っています。Docker、dockercloud、Cron
私はサーバとしてDigital Oceanに接続されたドッカークラウドを使用しています。
私のドッカーファイルの中に、私が必要とするソフトウェアを入手し、実行したいpython
スクリプトを含む関連するGitHubリポジトリを追加します。次に、cronスケジューラーを起動し、スクリプトを適切な時間に追加します。たとえば: cron_files.txtファイルには、次のようになります。
0 12 * * * /usr/bin/python /home/dir/run_check.py
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
あなたDockerfile内でcmdを実行していない場合は、コンテナが実際に実行されることはありません。 CMDディレクティブで実行するには、何かが必要です。 cronからコマンドを実行するための要件は何ですか? – jaxxstorm
ありがとうございます。そうですか。私は、異なる時間(1時間ごと、毎日特定の時間など)で実行したい一連のWebクローラーを持っているので、cronを使用しています。私はこれがDockerfileの 'RUN crontab -u root cron_files.txt'にあるものを開始すると思っていました。cron_files.txtには実際に動作するcronコマンドが含まれています – LearningSlowly
' RUN'は一度の操作を実行しますが、操作を実行する前に私の答えが来るのを見てください。 – jaxxstorm