From 90cf36b1e8f467ee267cc171837db297a2787714 Mon Sep 17 00:00:00 2001 From: Sugui Date: Mon, 15 Apr 2024 18:36:35 +0200 Subject: [PATCH] Fix to gracefully stop bun --- compose.yaml | 5 ++--- package.json | 3 +-- src/app.ts | 8 +++++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/compose.yaml b/compose.yaml index 30088de..d8bf85f 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,5 +1,3 @@ -version: "3" - services: mongodb: image: mongo:bionic @@ -16,7 +14,8 @@ services: bot-api: image: oven/bun:1 container_name: bot-api - command: bun run docker-dev + entrypoint: /bin/bash -c + command: ["bun --hot run src/index.ts"] working_dir: /usr/src/app ports: - "8080:8080" diff --git a/package.json b/package.json index e36feb8..4983e60 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,8 @@ }, "scripts": { "start": "bun run src/index.ts", - "docker-dev": "bun --hot run src/index.ts", "dev": "docker compose down -v && docker compose up", - "test": "docker compose down -v && docker compose run bot-api bun test" + "test": "docker compose down -v && docker compose run bot-api 'bun test'" }, "dependencies": { "compression": "^1.7.4", diff --git a/src/app.ts b/src/app.ts index 6107852..fc376bf 100644 --- a/src/app.ts +++ b/src/app.ts @@ -35,9 +35,15 @@ export const startApp = async () => { pass: mongo_pass, }); mongoose.set("runValidators", true); - app.listen(port, () => + const server = app.listen(port, () => logger.info(`Express server listening on port ${port}`) ); + process.on("SIGTERM", () => { + server.close(() => { + logger.info('Server closed'); + process.exit(0); + }); + }); } catch (error) { logger.error(error); process.exit(1);