O.K…. Lets start. ;)
Variables passed as arguments to the container using -e will be part of containers environment.
ENTRYPOINT script will be executed using this environment. Any CMD will be passed as an argument to the running ENTRYPOINT script.
If there is no ENTRYPOINT defined, CMD will be executed instead.
In other words:
ENTRYPOINT + CMD => $($ENTRYPOINT $CMD)
CMD => $($CMD)
ENTRYPOINT + CMD + CONTAINERARGS => $($ENTRYPOINT $CMD) with ENV_CONTAINERARGS
CMD + CONTAINERARGS => $($CMD) with ENV_CONTAINERARGS
ENTRYPOINT + CONTAINERARGS => $($ENTRYPOINT) with ENV_CONTAINERARGS
ENTRYPOINT => $($ENTRYPOINT)
CONTAINERARGS => NOTHING
NOTHING => NOTHING