我需要在Dockerfile中设置默认时区。我有两个容器(nginx和php7-fpm)。
当我进入PHP容器的bash并运行php --info | grep timezone
时,我得到以下结果:
Default timezone => UTC
date.timezone => no value => no value
我的dockerfiles如下:
nginx/Dockerfile:
FROM debian:jessie
RUN apt-get update && apt-get install -y nginx
ADD nginx.conf /etc/nginx/
ADD site.conf /etc/nginx/sites-available/
RUN ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site
RUN rm /etc/nginx/sites-enabled/default
RUN echo "upstream php-upstream { server php:9000; }" > /etc/nginx/conf.d/upstream.conf
RUN usermod -u 1000 www-data
CMD ["nginx"]
EXPOSE 80
EXPOSE 443
php-fpm/Dockerfile:
FROM php:7.0-fpm
RUN apt-get update && apt-get install -y git unzip
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer --version
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
RUN "date"
RUN docker-php-ext-install pdo pdo_mysql
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "display_startup_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.idekey=\"PHPSTORM\"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_port=9001" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
WORKDIR /var/www/site
我尝试使用类似问题的答案,但没有结果。
注意:我正在使用docker-compose build
和docker-compose up -d
来运行完整的堆栈,这正是这个。
root@e3d4bc020357:/var/www/html# php -i | grep zone 已解析附加的.ini文件 =>/usr/local/etc/php/conf.d/tzone.ini "Olson"时区数据库版本=>2017.2 时区数据库=>内部 默认时区=>US/Central date.timezone =>US/Central => US/Central
- Tarun Lalwani.ini
而不是.conf
。我先尝试使用了conf,然后是ini,然后不小心错误地发布了带有conf的解决方案。 - Tarun Lalwani