Mac uses low group IDs for the default user, which would cause groupadd
to fail as the group already existed. Only make a new group if it
doesn't already exist.
This does raise other questions though as now we are technically having
the container run with a "services" group.
* 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