Personally I wouldn't run Postfix and Dovecot together under Docker. Instead, I'd export a volume for the mail store, and share that volume between a Postfix and Dovecot container.
But if you absolutely want to put them in the same container, the solution is to run a process manager as the entrypoint. E.g. base it on something like baseimage-docker [1]
Re: 2. I don't use Go, so I can't answer that part.