bugfix> node.js > 投稿

マイクロサービスベースのアーキテクチャに従い、ヘルムパッケージによってアプリケーションをkubernetesクラスター内に展開します。データベースからcronジョブを照会するnodejsアプリケーションがあり、これらのジョブを同じコンテナー内のcrontabファイルに追加する必要があります。

したがって、コンテナをポートのnodejsアプリとして公開する場合、ジョブの追加リクエストを行い、これらのジョブはcronジョブタイプにフォーマットされます。これらのエントリはcrontabに追加し、これらのジョブをバックグラウンドで実行する必要があります。

これは達成できますか?

はいの場合、ノードアプリケーションを構築するベースイメージは何ですか?

また、Dockerファイルに含める必要がある手順は何ですか?また、cron実行ログを確認し、ノードアプリケーションとcronジョブの両方を実行するにはどうすればよいですか?

回答 2 件
  • 私はあなたがジョブスケジューラを探していることを理解しています、私の経験ではコンテナごとに2つ以上のプロセスを置くことは最良のアイデアではありません、おそらくあなたはそのジョブを実行する追加のマイクロサービスを使用して別のアプローチを使用できます

    アジェンダの使用をお勧めします

    https://github.com/agenda/agenda

    さまざまなジョブのコードを持つアジェンダワーカーを作成できます。必要なのは、スケジュールされたジョブまたは現在の実行を送信することだけです。このアーキテクチャにより、複数のアジェンダを同じポッド内のサイドカーコンテナとしても使用できますノードアプリケーション。

  • dockerfileでヘルスチェックを定義できます。これは、cliを介してdocker-composeおよび実行中のdockerコンテナーでも可能です。

    他の非基本イメージからdockerfileを継承し、 HEALTHCHECK NONE を追加する場合は、可能な前のヘルスチェックを無効にすることを常にお勧めします   FROM の後  句。

    完了したら、dockerfileに追加する独自のヘルスチェックを定義します。

    HEALTHCHECK <options> CMD <your command with args> || exit 1
    
    

    それはあなたが docker ps をするときにそれを誘発します  コンテナが実行中か停止中か、実行中の場合は正常かどうかがわかります、つまり、コマンドが実行されている/正しく実行されている場合。

    オプションの詳細については、Dockerドキュメントのヘルスチェックを参照してください。

あなたの答え