I'm trying to understand what this Docker entrypoint does.It seems to me that's a very common pattern when writing Dockerfiles, but my bash skills are limited and I have no idea of all the special bash symbols kung fu. Also, it's hard to google for --, $! etc. What are these called in bash world?To summarize, what is the line bellow trying to do?if [ ${1#-} != $1 ]; then  set -- haproxy $@fi
What does set -- do in this Dockerfile entrypoint?
shell script;set
The set command (when not setting options) sets the positional parameterseg$ set a b c$ echo $1a$ echo $2b$ echo $3cThe -- is the standard don't treat anything following this as an optionThe $@ are all the existing position paramters.So the sequenceset -- haproxy $@Will put the word haproxy in front of $1 $2 etc.eg$ echo $1,$2,$3a,b,c$ set -- haproxy $@$ echo $1,$2,$3,$4   haproxy,a,b,c