Refactor of build-and-run to handle versioning, proper tagging of containers, breaking processes into functions, and handling restarting containers after a reboot of the docker host.