作者:徐崇杰嚼 | 来源:互联网 | 2023-01-22 05:15
我正在使用Docker和Docker-compose来构建一堆nginx + php.
我正在尝试在我的.env
文件中设置时区并在Dockerfile中使用它,但我可能会误解文档中的内容.
.ENV
# Timezone
TIMEZOnE=Europe/Madrid
泊坞窗,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 --info | grep timezone
在php容器bash中运行).如果我在Dockerfile中手动编写区域,它可以工作.
1> Tarun Lalwan..:
您需要在docker compose中传递build参数
version '2'
services:
php:
build:
dockerfile: php7-fpm
args:
TIMEZONE: ${TIMEZONE}
volumes:
- ${APP_PATH}:/var/www/app
- ./logs:/var/www/logs
将environment
被传递给正在运行的容器,而不是传递给buildfile。对于需要传递args
的build
部分