* Mounts the current repo's code in the proper golang path in the
container
* Container will be destroyed when container is exited
* User will start in the repo's code directory in the container
* New container will have deps known at the time the container was made
* If deps change a lot, rebuild/save current container image as deps
are outside the directory mount
* Deps are not explicitly listed in the container Dockerfile or script
as go mod is expected to manage them for us
* Automatically creates a container user with UID/GID of the current
user to avoid file ownership issues
* Expects go get/go mod to be used to handle application dependencies
* Expects users to use a volume mount to make code visible to the
container
* Add a user (with the option of having the same UID/GID as current
user) to avoid weird file owners when building things in the container
as golang usually runs as root