Lo cambié a:
ENTRYPOINT ["bash", "/zoom/app.sh"]
y funcionó, no sé por qué aunque
Cuando usa la forma de matriz JSON de ENTRYPOINT (o CMD o RUN ), el comando se ejecuta exactamente como está. No hay manejo de shell en absoluto. exec , sin embargo, es a lo que el estándar se refiere como una "utilidad integrada especial"; solo existe dentro del contexto de un caparazón. Docker termina buscando un /bin/exec o /usr/bin/exec herramienta, y no está allí, generando ese mensaje de error.
Si puede ejecutar el script tal como está (es ejecutable y tiene una línea "shebang" correcta #!/bin/sh o similar), entonces no necesita un modificador como exec . Puedes especificarlo directamente
# No ENTRYPOINT
CMD ["/zoom/app.sh"]