Warning regarding Tini not being PID 1?

Hello! I’m in the process of setting up Sentry in containers on AWS ECS Fargate service and I noticed the following error in the logs for all three Sentry services (web/worker/cron):

[WARN tini (104)] Tini is not running as PID 1 and isn't registered as a child subreaper.
Zombie processes will not be re-parented to Tini, so zombie reaping won't work.
To fix the problem, use the -s option or set the environment variable TINI_SUBREAPER to register Tini as a child subreaper, or run Tini as PID 1.

I haven’t seen many topics on this, so I don’t know if this is something I need to be concerned about and how to address it if it is a concern. Any tips would be helpful! Thanks

Are you using our provided image? Are you overriding —entrypoint etc?

I am using the sentry:8.22 image as the basis for my image. My image just includes a simple shell script to pull values from the AWS parameter store and make them environment variables.

Here’s my dockerfile:

FROM sentry:8.22

RUN apt-get update && \
    apt-get -y install python curl unzip jq && \
    cd /tmp && \
    curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" && \
    unzip awscli-bundle.zip && \
    ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws && \
    rm awscli-bundle.zip && \
    rm -rf awscli-bundle

COPY env-build-entrypoint.sh /env-build-entrypoint.sh

ENTRYPOINT ["./env-build-entrypoint.sh"]

And here’s the entry point script. At the end it is calling the base images entry point script.

echo 'Getting secrets from AWS Parameter Store'

# <Snipping out logic about getting parameters from parameter store.

echo 'Completed secrets retrieval.'

# Run the base images entry point script.
/entrypoint.sh "$@"

Yeah, so the problem is with the last line of your custom entrypoint file. You need an exec in there.

exec /entrypoint.sh "$@"

Should fix it up.

I’d also like to point out that you’re re-installing python in your image with apt-get install -y python. This is overriding the Python that’s already installed in the image that Sentry needs. I’d probably advise not doing this and just using the Python that already exists.

Ah, rookie mistake on my part! Which makes sense, since I’m very much a rookie at this. I’ll modify the dockerfile and entry point accordingly.

Thank you very much!