We only have 3 go tools and the protoc binary used as a dependency at the moment.
I think, for now, we don’t need to complicate things for a possibility of problem in versioning.
I think we’ll not have 10s of dependencies in future so to me a single Dockerfile is enough for now.
If we need to split them in future we can do it always.
We can still use base Go image even if require some dependencies written in another languages. They’ll mostly be in binary anyway and if we face with some problems we can always split the containers.
I think most go tools will be compatible with the latest version of Go, so we should be fine about that one.
Yes there are versions defined in both Dockerfile-dev and Gopkg.toml file for dependencies. Gopkg.toml only keeps the versions for go tools. Dockerfile-dev keeps the versions about container itself and protoc dependency. And I agree that protoc and protoc-gen-doc go tool defined/downloaded in separete places. This looks a bit ambigous but it should be fine if we don’t have 10s of them. And it’s also possible to version go tools inside the Dockerfile too but it’ll require more lines in the code and I didn’t want to complicate things for now because we only have a few dependencies.