2016-03-14 20 views
1

我使用Docker & Docker-compose創建Symfony環境(PHP-FPM,Nginx,&)。未找到Docker&PHP-FPM的PHP date.timezone

但是,PHP不使用我的php.ini並忽略配置(在我的Symfony應用程序中找不到date.timezone參數)。

當然,當我在我的容器上時,date.timezone在2個php.ini(cli & FPM)中正確設置。

我不明白爲什麼,但它的作品,如果我把我的php.ini中在/ usr/local/etc中/ PHP/文件夾(WTF)

我錯過了什麼?

搬運工-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 

回答

0

官方PHP泊塢圖片使用/usr/local/etc/php作爲基本文件夾:見Dockerfile

2

我一直在面對相同的問題一段時間,主機有一個正確的日期/時間,但每個PHP容器是在GMT而不是歐洲/巴黎或主機日期時間。

對於那些將搜索有效答案並需要比@moliver答案更精確的人,在dockerfile中使用sed可能不是最佳答案。而且,php.ini可能不會在建造時創建。這裏是我的一個php容器中的/usr/local/etc/php的ls。

[email protected]:/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)。

泊塢窗,撰寫非常靈活,你可以添加一個體積含有的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" 

希望這有助於