From 754e98099cd8e5dca0550b5dbe5af6b1a207b723 Mon Sep 17 00:00:00 2001 From: Bastien Jeannelle <48835068+Sonlis@users.noreply.github.com> Date: Sat, 23 Mar 2024 19:53:27 +0100 Subject: [PATCH] Feature/Set up tini (#3168) * Set up tini to avoid zombie processes and perform signal forwarding in docker image * Update changelog --- CHANGELOG.md | 1 + Dockerfile | 11 +++++++++-- docker/entrypoint.sh | 12 ++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100755 docker/entrypoint.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index c29fa3d37..839baab2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Extended the content of the _SaaS_ and _Self-Hosting_ sections by the backup strategy on the Frequently Asked Questions (FAQ) page +- Set up `Tini` to avoid zombie processes and perform signal forwarding in docker image - Added an index for `dataSource` / `symbol` to the market data database table ### Changed diff --git a/Dockerfile b/Dockerfile index 1a557b8c4..9738eafc1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,7 +56,14 @@ 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 -WORKDIR /ghostfolio/apps/api +COPY ./docker/entrypoint.sh /ghostfolio/entrypoint.sh 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