我有真正的问题,试图将变量传递到我的docker容器中以动态更新我的xdebug.ini文件;

问题描述 投票:0回答:1
我的

Dockerfile

是基本的

FROM propietary-image-here-custom-8.3-fpm

RUN apt-get update

RUN pecl install xdebug && docker-php-ext-enable xdebug.so
COPY ./xdebug.ini /usr/local/etc/php/conf.d/

CMD ["/usr/local/sbin/php-fpm", "-F", "-R"]

my
.env
只是一行;

XDEBUG_MODE=debug

我的
xdebug.ini
如下;

xdebug.mode=${XDEBUG_MODE}

我可以用
docker compose up -d

很好地启动它,如果我运行

docker compose config
我可以看到变量。

但是,当我使用
docker run -i -t php /bin/bash
并执行

env

进入容器时,它不在那里,并且不适用于xdebug.ini.
	

tit不使用xdebug.ini.

您在xdebug.ini中可能是多余的:环境中的
xdebug.mode=${XDEBUG_MODE}
参数覆盖xdebug.mode ini设置。
因此,您可以在xdebug.ini中替换thing the默认(= greated)已完全适合您的模式。

compare:
php docker docker-compose
1个回答
0
投票
string xdebug.mode =develop
(xdebug.org)

,在那里找到此警告:

warning:

一些Web服务器具有一个配置选项,可以防止环境变量传播到PHP和XDEBUG。

,例如,php-fpm具有
XDEBUG_MODE
配置设置

默认情况下是

${XDEBUG_MODE}

,如果要使用

clear_env确保您的Web服务器不会清洁环境,或者专门允许通过on环境变量。

对于XDEBUG3扩展名的解释php-fpm phpinfo()输出,请参见带有XDEBUG 3 ENV XDEBUG_MODE的DOCKER PHP不起作用(Q&a)

测试容器环境的方式是错误的。而不是

off

,使用XDEBUG_MODE

XDEBUG_MODE
这是您配置的
dockercompose要做。请参阅
使用
run
属性
(docker.com)


使用一个文件可让您使用相同的文件供普通命令[BOLD BY]

如果您坚持使用exec$ cat .env FOO=BAR $ docker exec -i -t php php -r 'print_r(getenv());' Array ( [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [HOSTNAME] => f30ed99b9fed [TERM] => xterm [FOO] => BAR [PHPIZE_DEPS] => autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c [PHP_INI_DIR] => /usr/local/etc/php [PHP_CFLAGS] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 [PHP_CPPFLAGS] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 [PHP_LDFLAGS] => -Wl,-O1 -pie [GPG_KEYS] => AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD [PHP_VERSION] => 8.4.3 [PHP_URL] => https://www.php.net/distributions/php-8.4.3.tar.xz [PHP_ASC_URL] => https://www.php.net/distributions/php-8.4.3.tar.xz.asc [PHP_SHA256] => 5c42173cbde7d0add8249c2e8a0c19ae271f41d8c47d67d72bdf91a88dcc7e4b [HOME] => /root )

在运行一个独立于配置的构图时,必须在命令行上添加
env_file

开关:

.env
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.