Оператор блока IF внутри скрипта execlineb

У меня есть Docker-контейнер на основе Alpine, который запускает S6 Overlay для управления двумя службами внутри него (музыкальной базой данных и веб-интерфейсом для управления им). Проблема в том, что второй сервис не является обязательным, и это зависит от ${SERVICE_2} переменная окружения (true|false).

Итак, в основном у меня есть это, но служба не может работать, потому что if блок недействителен:

#!/usr/bin/execlineb -P

with-contenv

if [ $SERVICE_2 = true ]; then \
    sh -c "exec -a service_2 /usr/bin/php /var/www/service_2_music_admin_script.php >> /proc/self/fd/1 2>&1" \
;fi

Выполнение сценария возвращает:

if: fatal: unterminated block

Кстати, контейнер не имеет bash; работает Busybox. Я пытаюсь избежать установки Bash, если это не критично.

1 ответ

После некоторого копания блок If в execline стал слишком нюансом. Итак, я решил основную проблему: изменил на sh с переменными среды контейнера.

#!/usr/bin/with-contenv sh

...

Тогда я использовал exec выполнить процесс (в противном случае он не подключается к S6).

Другие вопросы по тегам