Weiterführende Links:
Stdout to syslog:
sudo docker run \ --log-driver syslog \ --log-opt syslog-address=tcp://syslog-host:1514 \ --log-opt syslog-format=rfc5424micro \ -d --name php \ -v /home/urs/docker-www:/usr/share/nginx/html \ -v /dev/log:/dev/log \ php:fpm-alpine
Der Skript Pfad muss in beiden Container identisch sein (vgl. -v option)
Reload NGINX aus Container:
kill -s HUP 1
Reload PHP-FPM aus Container:
kill -s USR2 1
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Für fasctcgi_pass muss die IP des php containers angegeben sein, wenn sie nicht über docker compose im gleichen Netz sind (fehlende DNS).
error_log=syslog
Ohne spezielle Anpassung werden aus einem Container weitergeleitete Log-Nachrichten über den unix-socket /dev/log mit dem Namen des Docker Hosts geloggt. Um dies zu umgehen muss ein dedizierter Socket eingerichtet werden. Mittels „HostName“ Parameter kann der Hostname für diesen Socket definiert werden.
input(type="imuxsock"
HostName="docker"
Socket="/dev/log-docker")
https://www.rsyslog.com/doc/configuration/modules/imuxsock.html#read-log-data-from-jails
Die Container müssen nach Neustart von rsyslog ebenfalls neu gestartet werden, da der Socket sonst ins leere läuft.