diff --git a/Dockerfile b/Dockerfile index 68ce887c1..026189ddd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,10 +45,17 @@ ENV NODE_ENV production WORKDIR /app -COPY --link --from=builder /app/next.config.js /app/.next/standalone ./ -COPY --link --from=builder /app/public ./public/ -COPY --link --from=builder /app/package.json ./package.json -COPY --link --from=builder /app/.next/static ./.next/static/ +# Copy files from context +COPY --link package.json next.config.js ./ +COPY --link --chmod=755 healthcheck.js ./ +COPY --link /public ./public + +# Copy files from builder +COPY --link --from=builder /app/.next/standalone ./ +COPY --link --from=builder /app/.next/static/ ./.next/static/ + +HEALTHCHECK --interval=12s --timeout=12s --start-period=30s \ + CMD node ./healthcheck.js EXPOSE 3000 ENV PORT 3000 diff --git a/healthcheck.js b/healthcheck.js new file mode 100755 index 000000000..8e2301f83 --- /dev/null +++ b/healthcheck.js @@ -0,0 +1,19 @@ +var http = require("http"); +var options = { + host: "localhost", + port: "3000", + timeout: 2000, +}; +var request = http.request(options, (res) => { + console.log(`STATUS: ${res.statusCode}`); + if (res.statusCode == 200) { + process.exit(0); + } else { + process.exit(1); + } +}); +request.on("error", function (err) { + console.log("ERROR"); + process.exit(1); +}); +request.end(); \ No newline at end of file