IF declaração de bloco dentro de um script execlineb

1

Eu tenho um Docker Container baseado no Alpine que executa o S6 Overlay para gerenciar dois serviços dentro dele (uma música DB, e uma interface web para gerenciá-lo). O problema é que o segundo serviço é opcional e depende da variável de ambiente ${SERVICE_2} (true | false).

Então, basicamente eu tenho isso, mas o serviço não pode ser executado porque o bloco if não é válido:

#!/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

A execução do script retorna:

if: fatal: unterminated block

A propósito, o contêiner não possui bash ; roda o Busybox. Estou tentando evitar instalar o bash a menos que seja crítico.

    
por DarkGhostHunter 14.09.2017 / 18:02

1 resposta

2

Depois de algumas escavações, o bloco If em execline tornou-se muito nuance. Então resolvi o problema da raiz: mudar para sh com variáveis de ambiente de container.

#!/usr/bin/with-contenv sh

...

Então usei exec para executar o processo (caso contrário, ele não se conecta ao S6).

    
por 01.10.2017 / 05:52