【发布时间】:2017-08-22 09:54:52
【问题描述】:
我正在使用 Docker 和 Docker-compose 构建一个 nginx+php 的堆栈。
我正在尝试在我的 .env 文件中设置时区并在 Dockerfile 中使用它,但我可能会误解 documentation 中的某些内容。
.env
# Timezone
TIMEZONE=Europe/Madrid
docker-compose.yml
version '2'
services:
php:
build: php7-fpm
volumes:
- ${APP_PATH}:/var/www/app
- ./logs:/var/www/logs
environment:
TIMEZONE: ${TIMEZONE}
#[...more.stuff...]
php7-fpm/Dockerfile
FROM php:7.0-fpm
ARG TIMEZONE
#[...more.stuff...]
ENV TIMEZONE=${TIMEZONE}
RUN ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime && echo $TIMEZONE > /etc/timezone
RUN printf '[PHP]\ndate.timezone = "%s"\n', $TIMEZONE > /usr/local/etc/php/conf.d/tzone.ini
容器内的时区设置不正确(在 php 容器 bash 内运行 php --info | grep timezone)。如果我在 Dockerfile 中手动编写区域,它可以工作。
【问题讨论】:
-
这里的实际问题是什么?
-
容器内的时区设置不正确。如果我在 Dockerfile 中手动编写区域,它可以工作。
标签: docker docker-compose dockerfile