PHP date.timezone не найден в Docker & amp; PHP-FPM

Я создаю среду Symfony (PHP-FPM, Nginx, & больше) с докером & Docker-Compose.

Но PHP не использует мой php.ini и игнорирует конфигурацию (параметр date.timezone не найден в моем приложении Symfony).

Конечно, когда я захожу на свой контейнер, date.timezone правильно установлен в 2 php.ini (cli & FPM).

Я не понимаю почему, но это работает, если я помещаю свой php.ini в / USR / местные / и т.д. / PHP / папка (wtf)

Я что-то пропустил?

docker-compose.yml:

nginx:
image: nginx
volumes:
- "./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro"links:
- "php:php"ports:
- "80:80"- "443:443"working_dir: "/etc/nginx"
php:
build: docker/php
volumes:
- ".:/var/www:rw"working_dir: "/var/www"

Dockerfile:

FROM php:5-fpm

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && \
apt-get install -y php5-common php5-fpm php5-cli php5-mysql php5-apcu php5-intl php5-imagick && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN sed -i 's/;date.timezone =/date.timezone = "Europe\/Paris"/g' /etc/php5/fpm/php.ini
RUN sed -i 's/;date.timezone =/date.timezone = "Europe\/Paris"/g' /etc/php5/cli/php.ini

RUN usermod -u 1000 www-data

2

Решение

Официальное использование PHP Docker Image /usr/local/etc/php в качестве базовой папки: см. Dockerfile.

4

Другие решения

Некоторое время я сталкивался с той же проблемой, на хост-машине была правильная дата / время, но каждый php-контейнер был в GMT, а не в Европе / Париже или времени хоста.

Для тех из вас, кто ищет правильный ответ и нуждается в большей точности, чем ответ @moliver, используйте sed в докер-файле, возможно, не самый лучший ответ. Более того, php.ini не может быть создан во время строительства. Вот лс /usr/local/etc/php в одном из моих контейнеров php.

root@6fd7bc929a7e:/usr/local/etc/php/conf.d# ls
docker-php-ext-bcmath.ini    docker-php-ext-exif.ini    docker-php-ext-mysqli.ini     docker-php-ext-soap.ini    docker-php-ext-xsl.ini
docker-php-ext-bz2.ini       docker-php-ext-gd.ini      docker-php-ext-pcntl.ini      docker-php-ext-tidy.ini    docker-php-ext-zip.ini
docker-php-ext-calendar.ini  docker-php-ext-mcrypt.ini  docker-php-ext-pdo_mysql.ini  docker-php-ext-xmlrpc.ini  ext-imagick.ini

(Да, я добавил много расширений, но по умолчанию нет php.ini).

docker-compose очень гибок, вы можете добавить том, содержащий информацию php.ini:
версия: ‘2’

services:
php:
build: ./DOCKERFILES/phpdemo
container_name: applicationDEMO
volumes:
- "./conf/whatever.ini:/usr/local/etc/php/conf.d/whatever.ini"- "/etc/timezone:/etc/timezone:ro"- "/etc/localtime:/etc/localtime:ro"

И в твоем ./conf/whatever.ini

date.timezone = "Europe/Paris"

Надеюсь это поможет

4

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector