Went through foreman/goreman/forego and all of them either did not:
– support not printing the name
– support killing all when one finishes
– support sending signals to all children
But this does:
## Install parallel with `done` support
RUN \
curl -sL http://ftp.gnu.org/gnu/parallel/parallel-20180422.tar.bz2 > /tmp/parallel.tar.bz2 && \
cd /tmp && tar -xvjf /tmp/parallel.tar.bz2 && cd parallel* && \
./configure && make install && rm -rf /tmp/parallel*
# stream output and stop all commands if any of them finish/fail
parallel --no-notice --ungroup --halt 'now,done=1' {1} ::: 'sleep 10' 'sleep 20'