Skip to content

Add gitlab-rust base image

Stan Hu requested to merge sh-add-rust into master

What does this MR do?

This adds rustc in preparation for Rust-related work:

  1. Rust port of prometheus-client-mmap: gitlab-org/ruby/gems/prometheus-client-mmap!79 (closed)
  2. Other gems like commonmarker
  3. Ruby 3.2's YJIT

This merge request makes a number of changes:

  1. Adds gitlab-rust into both the Debian and UBI-8 pipelines.

  2. To avoid increasing the size of the gitlab-ruby image, we need to make rustc available when the Ruby interepter is built. For Debian builds, we split the building of the Ruby interpreter into a multi-stage build where jemalloc and ruby are installed into a DESTDIR so that the assets can be collected easily. This actually decreases the size of the gitlab-ruby image from 379 MB to 353 MB.

Note that this commit does not yet make rustc available for Ruby gems during bundle install. That requires some refactoring with the Debian-based images because bundle install is part of the final image already (gitlab-org/charts/gitlab#3444 (moved)).

Related issues

Relates to gitlab-org/charts/gitlab#4307 (closed)

Checklist

See Definition of done.

For anything in this list which will not be completed, please provide a reason in the MR discussion

Required

  • Merge Request Title, and Description are up to date, accurate, and descriptive
  • MR targeting the appropriate branch
  • MR has a green pipeline on GitLab.com

Expected (please provide an explanation if not completing)

  • Test plan indicating conditions for success has been posted and passes
  • Documentation created/updated
  • Integration tests added to GitLab QA
  • The impact any change in container size has should be evaluated
Edited by Jason Plum

Merge request reports