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