Como os colegas da DevOps SE apontaram, o uso adequado de ´su´ deveria ser:
su -c "$0" "$ZOO_USER" "$@"
Neste script bash no Linux Alpine eles têm (linha 8):
exec su-exec "$ZOO_USER" "$0" "$@"
Até onde eu sei, su-exec
é, no entanto, um Apache httpd dependecy - posso evitar que ele seja instalado no Ubuntu e use alguma alternativa mais simples?
Eu testei até agora:
su -c "$0 $@" $ZOO_USER
Mas este comando do Docker mostra que posso ter algum tipo de erro de escape / aspas,
CMD ["zkServer.sh", "start-foreground"]
resultando na seguinte saída. Qual é a diferença para o original, o que funciona bem?
No passwd entry for user 'start-foreground'
Tags bash su escape-characters