Migrated to NodeJS/Vite/Express/Material UI 2 #1
@@ -26,7 +26,9 @@ COPY --from=build /app/backend/node_modules dist/backend/node_modules
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY entrypoint.sh entrypoint.sh
|
COPY entrypoint.sh entrypoint.sh
|
||||||
|
COPY healthcheck.js healthcheck.js
|
||||||
RUN chmod +x entrypoint.sh
|
RUN chmod +x entrypoint.sh
|
||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
CMD ["./entrypoint.sh"]
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 CMD ["node", "/app/healthcheck.js"]
|
||||||
|
ENTRYPOINT ["./entrypoint.sh"]
|
||||||
|
|||||||
39
healthcheck.js
Normal file
39
healthcheck.js
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
const http = require("node:http");
|
||||||
|
|
||||||
|
const port = Number.parseInt(process.env.PORT || "3000", 10);
|
||||||
|
const path = process.env.HEALTHCHECK_PATH || "/api/templates";
|
||||||
|
const timeoutMs = Number.parseInt(process.env.HEALTHCHECK_TIMEOUT_MS || "3000", 10);
|
||||||
|
|
||||||
|
const req = http.request(
|
||||||
|
{
|
||||||
|
host: "127.0.0.1",
|
||||||
|
port,
|
||||||
|
path,
|
||||||
|
method: "GET",
|
||||||
|
timeout: timeoutMs
|
||||||
|
},
|
||||||
|
(res) => {
|
||||||
|
// Drain the response so the socket can close cleanly.
|
||||||
|
res.resume();
|
||||||
|
|
||||||
|
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {
|
||||||
|
process.exit(0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
req.on("timeout", () => {
|
||||||
|
req.destroy(new Error("healthcheck timeout"));
|
||||||
|
});
|
||||||
|
|
||||||
|
req.on("error", () => {
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
req.end();
|
||||||
Reference in New Issue
Block a user