Условные настройки докера для удаленной отладки в зависимости от ОС
Как можно установить настройку 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:
...
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", и в случае ответа "Darwin" можно использовать настройки, в противном случае они должны быть перезаписаны как "xdebug.remote_connect_back = 1".
Как я могу решить это?
РЕДАКТИРОВАТЬ: В настоящее время я использую дополнительную переменную в файле.env, как APPLE_OS_X=true. Пользователи должны настроить его на false при использовании компьютеров с Linux или Windows. В зависимости от этой переменной значение xdebug.remote_connect_back будет перезаписано 1.
По-прежнему остается вопрос, как я могу отреагировать на команду оболочки "uname", чтобы автоматически установить значение APPLE_OS_X в файле.env или xdebug.remote_connect_back в файле Docker.