Docker-compose:在env文件中设置一个variables并在Dockerfile中使用它
我正在使用Docker和Docker-compose来构build一个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容器bash中运行php --info | grep timezone
)。 如果我在Dockerfile中手动编写区域,它将起作用。
您需要在Docker撰写中传递构build参数
version '2' services: php: build: dockerfile: php7-fpm args: TIMEZONE: ${TIMEZONE} volumes: - ${APP_PATH}:/var/www/app - ./logs:/var/www/logs
environment
传递给正在运行的容器而不是构build文件。 对于你需要在build
部分传递args