如何根据本地操作系统有条件地设置php.ini设置?
.env文件包含两个变量:
XDEBUG_ENABLE=true
PHP_INI=./docker/runner/php.ini-development
Docker-compose.yml看起来像这样:
...
build:
context: .
dockerfile: ./docker/runner/Dockerfile
args:
- XDEBUG_ENABLE=${XDEBUG_ENABLE}
- PHP_INI=${PHP_INI}
...
Dockerfile包含以下代码:
...
ARG PHP_INI=./docker/runner/php.ini-local
COPY $PHP_INI /usr/local/etc/php/php.ini
ARG XDEBUG_ENABLE=false
RUN if [ $XDEBUG_ENABLE = true ]; then pecl install xdebug-2.6.0 && docker-php-ext-enable xdebug; fi;
...
有趣的是在php.ini-development中:
...
xdebug.default_enable = 1
xdebug.remote_connect_back = 0
xdebug.remote_host = docker.for.mac.host.internal
...
此时Apple和Linux机器应该有不同的设置,因为Linux支持" xdebug.remote_connect_back = 1"而且Apple没有。
我想" uname"可以使用,如果有回应"达尔文"可以使用这些设置,否则它们应该被" xdebug.remote_connect_back = 1"覆盖。
我该如何解决?
编辑: 目前我在.env文件中使用了另一个变量,如APPLE_OS_X = true。使用Linux或Windows计算机时,用户必须将其调整为false。 根据此变量,xdebug.remote_connect_back的值将被1覆盖。
问题仍然是我如何对shell命令做出反应' uname'自动设置.env文件中APPLE_OS_X的值或Dockerfile中的xdebug.remote_connect_back。