Warning regarding Tini not being PID 1?


#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


#2

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


#3

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 "$@"

#4

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.


#5

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.


#6

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!