マイクロサービスベースのアーキテクチャに従い、ヘルムパッケージによってアプリケーションをkubernetesクラスター内に展開します。データベースからcronジョブを照会するnodejsアプリケーションがあり、これらのジョブを同じコンテナー内のcrontabファイルに追加する必要があります。
したがって、コンテナをポートのnodejsアプリとして公開する場合、ジョブの追加リクエストを行い、これらのジョブはcronジョブタイプにフォーマットされます。これらのエントリはcrontabに追加し、これらのジョブをバックグラウンドで実行する必要があります。
これは達成できますか?
はいの場合、ノードアプリケーションを構築するベースイメージは何ですか?
また、Dockerファイルに含める必要がある手順は何ですか?また、cron実行ログを確認し、ノードアプリケーションとcronジョブの両方を実行するにはどうすればよいですか?
dockerfileでヘルスチェックを定義できます。これは、cliを介してdocker-composeおよび実行中のdockerコンテナーでも可能です。
他の非基本イメージからdockerfileを継承し、
HEALTHCHECK NONE
を追加する場合は、可能な前のヘルスチェックを無効にすることを常にお勧めしますFROM
の後 句。完了したら、dockerfileに追加する独自のヘルスチェックを定義します。
HEALTHCHECK <options> CMD <your command with args> || exit 1
それはあなたが
docker ps
をするときにそれを誘発します コンテナが実行中か停止中か、実行中の場合は正常かどうかがわかります、つまり、コマンドが実行されている/正しく実行されている場合。オプションの詳細については、Dockerドキュメントのヘルスチェックを参照してください。
関連記事
- ダッシュが入ったコンテナ名を1つの文字列として読み取るようにKibanaに指示する方法
- OpenGL jpgを背景としてobjモデルを表示するにはどうすればよいですか?
- コマンドラインからブールAND(&&)演算子で区切られたbuildahコンテナ内で複数のコマンドを実行します
- Vuejsで背景色を変更するのに苦労している
- nodejs(Serverless Framework)のcsrファイル内のSANを抽出するにはどうすればよいですか?
- Dockerコンテナ内のPythonでファイルを削除する方法は?
- コンテナ内ではなくフレームに描画できるのはなぜですか?
- Kubernetes/OpenShiftのコンテナー内でログ出力をパイプする方法は?
- nodejsのexecSync内でコマンドが機能しない
- ブートストラップコンテナ付きの半角背景画像
私はあなたがジョブスケジューラを探していることを理解しています、私の経験ではコンテナごとに2つ以上のプロセスを置くことは最良のアイデアではありません、おそらくあなたはそのジョブを実行する追加のマイクロサービスを使用して別のアプローチを使用できます
アジェンダの使用をお勧めします
https://github.com/agenda/agenda
さまざまなジョブのコードを持つアジェンダワーカーを作成できます。必要なのは、スケジュールされたジョブまたは現在の実行を送信することだけです。このアーキテクチャにより、複数のアジェンダを同じポッド内のサイドカーコンテナとしても使用できますノードアプリケーション。