【问题标题】:Docker - Environment variables not overwriting php.iniDocker - 环境变量不覆盖 php.ini
【发布时间】:2019-05-11 19:53:50
【问题描述】:

我正在 docker 上运行一个自定义 php 应用程序。我已经设置了一些用于配置 php.ini 或 apache 的 env 变量,但是当我执行 docker-compose up --build 并尝试从浏览器访问应用程序(index.php)时,我可以看到 env 变量没有覆盖 php.ini文件或apache conf。任何想法我做错了什么?

这些是我的文件

docker-compose.yml

services:
    app:
        container_name: myapp
        build:
            context: .
            dockerfile: docker/Dockerfile
        volumes:
            - .:/var/www/html
        ports:
            - 8080:80
        env_file:
            - ./.env
        networks:
            - appnet

Dockerfile

FROM php:7.3-apache-stretch
COPY docker/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY docker/config/php/php.ini /usr/local/etc/php/php.ini
COPY docker/config/php/conf.d/*.ini /usr/local/etc/php/conf.d/
COPY . /var/www/html/
WORKDIR /var/www/html/

php.ini

date.timezone = ${PHP_DATE_TIMEZONE}
display_errors = ${PHP_DISPLAY_ERRORS}
error_reporting = ${PHP_ERROR_REPORTING}

.env

PHP_DATE_TIMEZONE = Europe/London
PHP_DISPLAY_ERRORS = 1
PHP_ERROR_REPORTING = -1

index.php

【问题讨论】:

    标签: php docker environment-variables


    【解决方案1】:

    问题是您的.env 文件中有空格。

    尝试将其更改为:

    PHP_DATE_TIMEZONE=Europe/London
    PHP_DISPLAY_ERRORS=1
    PHP_ERROR_REPORTING=-1
    

    Compose 要求 env 文件中的每一行都采用 VAR=VAL 格式。

    https://docs.docker.com/compose/env-file/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 2017-12-24
      相关资源
      最近更新 更多