Improve Dockerfiles and containerlab creation (especially in build and startup time)

Containerlab creation takes a very long time and our docker images are pretty huge in size.

Description

Building docker images and especially our make containerlab start take an incredibly long time. This is since we do not cache the go dependencies during a go build and because we usually always pull the entire project into the build container (this can be quite a few GB, since we have some submodules within our project by now).

Expected Behavior

Actual Behavior

Possible Fix

Cache go dependencies for go build Do not copy the whole project -> only necessary folders

Steps to Reproduce

  1. run make containerlab-start
  2. wait
  3. cry

Context

Your Environment

  • Version used:
  • Environment name and version (e.g. go v1.16.3 on FreeBSD 13.0-current):
  • Server type and version:
  • Operating System and version: