Dockerfileでデフォルトのタイムゾーンを設定する必要があります。 2つのコンテナー(nginxとphp7-fpm)があります。
PHPコンテナのbashを入力してphp --info | grep timezone
を実行すると、次のようになります。
デフォルトのタイムゾーン=> UTC
date.timezone =>値なし=>値なし
私の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
を使用していますが、これは完全に this one です。
タイムゾーン設定には2つのタイプがあります。 1つはシステムレベルです。 /etc/localtime
を使用して設定できること
以下のDockerfileの手順を参照してください
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
PS: https://serverfault.com/questions/683605/docker-container-time-timezone-will-not-reflect-changes から取得
また、別の記事を参照することもできます docker-composeを使用してコンテナーのタイムゾーンを設定する
次は、PHP/APPレベルの設定です。そのために、iniファイルを作成できます。これは、Dockerfileに以下の行を追加することで実行できます
RUN printf '[PHP]\ndate.timezone = "US/Central"\n' > /usr/local/etc/php/conf.d/tzone.ini