Open renatomefi opened 5 years ago
Regarding the communication between containers, perhaps also note that Unix socket communication does not need to be bound to the filesystem on Linux (search for "abstract" in http://man7.org/linux/man-pages/man7/unix.7.html). This will even work between containers in the same pod, because the abstract socket namespace is part of the network namespace. Sharing a volume between containers with a socket file is actually unnecessary for this case.
I'm not certain whether both nginx and PHP support using abstract socket names, however.
Also, contrasting "socket" with TCP here is misleading, as TCP sockets are also sockets. The appropriate terminology is "Unix domain socket", or just "Unix socket" for short.
/cc @tomoki1337
Context
There are too many things to consider when deploying a PHP Docker setup in Kubernetes, many of them related to good practices and others due to how PHP is designed, the intent of this issue is to list all of them and match whether we have both solved the issue and documented it.
THE list
pcntl
by default. Which means SIGTERM and SIGINT will be ignored and the process will die non gracefully, also the application must know how to deal with the signalpreStop
which checks if the Nginx is dead before PHP-FPM:WARNING: [pool www] child 12 said into stdout :
. 7.3 has a fix for that, but what to do with 7.2? https://www.php.net/manual/en/migration73.new-features.php#migration73.new-features.fpm