| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- const app = require("./server");
- const { port } = require("./config");
- const server = app.listen(port, function() {
- console.log("Webserver is ready");
- });
- //
- // need this in docker container to properly exit since node doesn't handle SIGINT/SIGTERM
- // this also won't work on using npm start since:
- // https://github.com/npm/npm/issues/4603
- // https://github.com/npm/npm/pull/10868
- // https://github.com/RisingStack/kubernetes-graceful-shutdown-example/blob/master/src/index.js
- // if you want to use npm then start with `docker run --init` to help, but I still don't think it's
- // a graceful shutdown of node process
- //
- // quit on ctrl-c when running docker in terminal
- process.on("SIGINT", function onSigint() {
- console.info(
- "Got SIGINT (aka ctrl-c in docker). Graceful shutdown ",
- new Date().toISOString()
- );
- shutdown();
- });
- // quit properly on docker stop
- process.on("SIGTERM", function onSigterm() {
- console.info(
- "Got SIGTERM (docker container stop). Graceful shutdown ",
- new Date().toISOString()
- );
- shutdown();
- });
- // shut down server
- function shutdown() {
- server.close(function onServerClosed(err) {
- if (err) {
- console.error(err);
- process.exit(1);
- }
- process.exit(0);
- });
- }
- //
- // need above in docker container to properly exit
- //
|