Comments (3)
Using the shell script to start your node application will do that your application doesn't receive signals. So for example, if you run your container and then try to docker stop
it, it will take 10 seconds, since Docker sends a SIGTERM
to stop your container, but your container doesn't handle signals (because shell is the main process), so after 10 seconds Docker gives up and sends a SIGKILL
to kill the container. Receiving a SIGKILL
could lead to unexpected behaviour if you are running for example an HTTP server. Normally we stop servers using graceful shutdown, instead of just killing them.
It'll also happen if you try to ctrl+c
your container. It won't stop.
This won't happen with Tini.
from tini.
@zjleon the answer depends on what your shell script does; and whether it uses exec
when starting your NodeJS server.
Can you post your shell script? I'd be able to provide a more accurate answer then :)
from tini.
@krallin thx for reply,
this is my shell script to start the node server
// container.dev.web_static.initial.sh
npm install --prefix ./src/web_static
npm run dev:web_static
in the dockerfile, I just copy it to the container, then execute it
ADD ./scripts/container.dev.web_static.initial.sh ./initial.sh
CMD ["bash", "./initial.sh"]
the shell script right now is real simple, I can't see too much benefit I can get from using tini(from what I learn from the README), Is that right?
from tini.
Related Issues (20)
- ownership of /proc/1/* is root even the user is non-root HOT 3
- Support setuid and setguid before execute command?
- Supress TRACE but show DEBUG HOT 1
- Event not generated when File change happens HOT 1
- About Tini version planning? HOT 2
- aarch64 version available? HOT 3
- Non-terminal signals are killing containers running with --init flag HOT 3
- stack-protector not work HOT 4
- [FATAL tini (7)] exec bash failed: No such file or directory HOT 3
- [CVE-2023-25139]tini-static executable seems vulnerable HOT 1
- example / explanation HOT 1
- How can I confirm that tini is running? HOT 1
- prctl(PR_SET_PDEATHSIG, ...) should be called after fork(), not before HOT 4
- MI6&termux&clang-16 build failed HOT 2
- Using "docker run --init" with arguments to tini HOT 2
- tini docker windows container HOT 1
- Command-line parsing is broken if compiled with TINI_MINIMAL
- tini not running as child subreaper on AWS Lambda HOT 4
- dnf/rpm install -y tini not working HOT 1
- Latest release changed to 0.18. then switched back to 0.19 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tini.