From debd233c32efa47c1f70d558a36c1af528dbc92b Mon Sep 17 00:00:00 2001 From: Bastien Jeannelle <48835068+Sonlis@users.noreply.github.com> Date: Sat, 30 Mar 2024 13:42:02 +0100 Subject: [PATCH] Feature/set up Tini to avoid zombie processes (#3195) * Set up Tini to avoid zombie processes * Update changelog --- CHANGELOG.md | 1 + Dockerfile | 10 +++++++++- docker/entrypoint.sh | 12 ++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 docker/entrypoint.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 01cf52485..9b0f40241 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added the date range support in the activities table on the portfolio activities page (experimental) - Extended the date range support by specific years (`2023`, `2022`, `2021`, etc.) in the assistant (experimental) +- Set up `Tini` to avoid zombie processes and perform signal forwarding in docker image ### Changed diff --git a/Dockerfile b/Dockerfile index 1a557b8c4..aa578e235 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,7 +56,15 @@ RUN apt update && apt install -y \ openssl \ && rm -rf /var/lib/apt/lists/* +# Add tini, which is an init process that handles signaling within the container +# and with the host. See https://github.com/krallin/tini +ENV TINI_VERSION v0.19.0 +ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini +RUN chmod +x /tini +ENTRYPOINT ["/tini", "--"] + COPY --from=builder /ghostfolio/dist/apps /ghostfolio/apps +COPY ./docker/entrypoint.sh /ghostfolio/entrypoint.sh WORKDIR /ghostfolio/apps/api EXPOSE ${PORT:-3333} -CMD [ "yarn", "start:production" ] +CMD [ "/ghostfolio/entrypoint.sh" ] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 000000000..71cf6f2dc --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +set -ex + +echo "Running database migrations" +npx prisma migrate deploy + +echo "Seeding the database" +npx prisma db seed + +echo "Starting the server" +node main