Create `gitlab/kitchensink` docker image
Description
Most .gitlab-ci.yml configurations start from a standard base image and then apt get whatever they need to run their CI/CD. This is great and functional, but all that apt geting adds a lot of time to the CI/CD pipeline. We can encourage people to create their own custom images, and that helps, but is quite painful and still inflates download time and the proliferation of images overwhelms our docker image proxy cache. If we provided a standard image with most common tools already installed, we could speed up a lot of pipelines by providing everything that 90%+ of our users need. It would get even better if we pre-loaded this image on every shared runner on GitLab.com. This would let us approach the raw speed of CircleCI or Travis CI.
Proposal
Start from something common like ubuntu and add:
-
docker,docker-compose, etc. -
rvmand a bunch of ruby versions -
nvmand a bunch of node versions - Google Cloud CLI which includes
kubectl awscli-
dpl(in every ruby version) - python, java, other languages (and multiple versions if feasible)
Links / references
- Meta speed issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/21624