For my own container images, I often like to use the Fedora Container Images as the base image. This means I often use the “fedora:32” or “fedora-minimal:32” image when building my own images.
Yesterday, while playing around with an image based on the “fedora-minimal” image that then uses nginx and php-fpm, I came across this curious error:
Invalid date.timezone value 'UTC', we selected the timezone 'UTC' for now
Very strange, looks like PHP does not know which timezones are valid. The complete error message reads like this:
[error] 9#0: *91 FastCGI sent in stderr: "PHP message: PHP Warning: timezone_open(): Unknown or bad timezone (Europe/Zurich) in /usr/share/nginx/html/wp-includes/functions.php on line 5686PHP message: PHP Warning: date_create(): Invalid date.timezone value 'UTC', we selected the timezone 'UTC' for now. in /usr/share/nginx/html/wp-includes/functions.php on line 5687PHP message: PHP Fatal error: date_create(): Timezone database is corrupt - this should *never* happen! in /usr/share/nginx/html/wp-includes/functions.php on line 5687" while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "localhost:8080"
Upon investigation, I found that the relevant
/usr/share/zoneinfo folder did not exist, even though the
tzdata package was installed:
# microdnf install tzdata [..] # ls -l /usr/share/zoneinfo ls: cannot access '/usr/share/zoneinfo': No such file or director
It turns out that while the
tzdata package is installed, it is indeed broken in the base image:
# rpm -V tzdata missing /usr/share/zoneinfo missing /usr/share/zoneinfo/Africa missing /usr/share/zoneinfo/Africa/Abidjan missing /usr/share/zoneinfo/Africa/Accra missing /usr/share/zoneinfo/Africa/Addis_Ababa missing /usr/share/zoneinfo/Africa/Algiers [..]
This seems to be a known issue, at least for the RHEL8 UBI images, as I found in BugZilla 1668185, but the fix has not made its way into the Fedora images.
I filed BugZilla 1870814, the current workaround is to reinstall the package using
microdnf reinstall tzdata , which will reinstall the files.