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 get
ing 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. -
rvm
and a bunch of ruby versions -
nvm
and 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