シェル スクリプトを呼び出す docker コンテナ内で cron ジョブを実行しようとしています。
昨日オンラインとスタック オーバーフローで検索しましたが、実際に機能する解決策が見つかりません。
これどうやってするの?
P粉5638310522023-10-11 17:56:26
承認された回答 運用環境では危険な可能性があります。
CMD cron && tail -f /var/log/cron.log を使用すると、cron プロセスは基本的にフォークしてバックグラウンドで
cron を実行し、メイン プロセスが終了します。
tailf をフォアグラウンドで実行させます。バックグラウンドの cron プロセスは気付かないうちに停止または失敗する可能性があり、コンテナーは引き続きサイレントに実行され、オーケストレーション ツールはコンテナーを再起動しません。
リーリー
CMD は次のようになります:CMD ["cron", "-f"]
ただし、 の場合は、非 root ユーザー としてタスク を実行します。
P粉8181258052023-10-11 16:39:03
crontab
をイメージにコピーすると、そのイメージから起動されたコンテナーがジョブを実行できます。
重要: docker-cron 問題 3< 中所述< /a> と同様: cron
ファイルには CRLF の代わりに LF を使用します。
SeeDocker を使用した cron ジョブの実行" /github.com/julienboulay" rel="noreferrer">Julien Boulay の <代码>Ekito/docker -cron :
リーリー2>&1
が何なのか知りたい場合は、Ayman Hourieh が説明します。
リーリー
ただし: cron が停止しても、
container は引き続き実行されます。
(
の コメント および apt-get のインストールのノイズを軽減する方法を参照してください。 :
apt-get -y install -qq --force-yes cron も機能します)
Nathan Lloyd
が
にコメントしたように: あるいは、hugoShaka
: のように、ジョブ自体がログ ファイルではなく stdout/stderr に直接リダイレクトされるようにします。 リーリー Dockerfile の最後の行を に置き換えます。 リーリー
ただし、の場合は、非 root ユーザー
としてタスクを実行します。 「cron -f、cron "フロントエンド" について」も参照してください。「
docker ubuntucron -f は機能しません
」
ビルドして実行します:
リーリー
リーリー
エリック
がコメントに: 「docker CMDtail -f
出力 > 表示されない 」を参照してください。
詳細については、
による「Docker での Cron の実行」 (2021 年 4 月) を参照してください。コメントは次のとおりです Jason の画像を表示 Dockerfile は、ディストリビューションに応じて、 エントリ ポイントの初期化AnalogJ/docker-cron
に基づく:
cronie
/crond
をインストールします。 /etc/environment
次に呼び出し