URPUTNIK: tak aktualni zaver je, ze aplikaci nechame jak je .. akorat pro pouziti ve dockeru, kdyz se vytvari image, misto souboru se podstrci symlinky na /dev/stdout (uplne stejne se to
resi v oficialnim php docker image) .. takhle:
RUN set -eux ; \
cd /app/log/ ; \
touch app.log ;\
ln -sfT /dev/stdout app.log ; \
chown -R --no-dereference www-data:www-data . ;
uvnitr pustenyho image ty symlinky vypadaj stejne, jako ty pro apache access/error:
root@63f6b1c48b39:/app# ls -la /var/log/apache2/
total 8
drwxrwxrwx 2 www-data www-data 4096 May 8 02:37 .
drwxr-xr-x 1 root root 4096 May 8 02:37 ..
lrwxrwxrwx 1 www-data www-data 11 May 8 02:37 access.log -> /dev/stdout
lrwxrwxrwx 1 www-data www-data 11 May 8 02:37 error.log -> /dev/stderr
lrwxrwxrwx 1 www-data www-data 11 May 8 02:37 other_vhosts_access.log -> /dev/stdout
root@63f6b1c48b39:/app# ls -la log/
total 8
drwxr-xr-x 1 www-data www-data 4096 May 28 13:55 .
drwxr-xr-x 1 root root 4096 May 28 13:55 ..
lrwxrwxrwx 1 www-data www-data 11 May 28 13:55 app.log -> /dev/stdout
nicmene ve chvili, kdy do nich zkusi php zapsat
if ($f = fopen($logfile, 'a')) {
fwrite($f, strftime("%Y/%m/%d - %H:%M:%S: ") . $data);
fclose($f);
return true;
} else {
return false;
}
tak to spadne
Warning: fopen(/app/log/app.log): failed to open stream: Permission denied in ..
takze, co mi uteklo? :/