An optimization that could be done for the build process is that, during the build-node section of the build, the go and apt packages are not cached, each rebuild redownloads the updated go version and packages and reruns the apt install commands.
Being able to cache these dependencies in the build.sh script would massively speed up the build-node process.
Note: I do not believe critical it is to keep the build command inside the build.sh script-- rather the commands in the script can be moved into the Dockerfile(s) so Docker can more readily cache those commands into layers.