docker/Dockerfile_debian_12.erb (67 lines of code) (raw):

FROM debian:12 as ruby-image RUN apt-get update -q \ && apt-get install -y \ autoconf \ g++ \ gcc \ git \ make \ curl \ libyaml-dev \ zlib1g-dev \ libssl-dev \ libreadline-dev \ libgdbm-dev \ libgdbm-compat-dev \ locales \ && apt-get autoremove -yq \ && apt-get clean -yqq \ && rm -rf /var/lib/apt/lists/* RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ && locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 <%= Snippets.new(include: %w[versions openssl]).populate %> ENV RUBY_CONFIGURE_EXTRA_OPTS='--with-openssl-dir=/usr/local/openssl' <%= Snippets.new(include: %w[versions rust ruby]).populate %> FROM ruby-image as builder # Install required packages RUN apt-get update -q \ && DEBIAN_FRONTEND=noninteractive apt-get purge -yq git \ && DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \ build-essential \ autoconf \ automake \ autopoint \ byacc \ clang \ libclang-dev \ libffi-dev \ libkrb5-dev \ libreadline-dev \ libgdbm-dev \ libncurses5-dev \ llvm-dev \ meson \ ninja-build \ bzip2 \ ca-certificates \ openssh-server \ libcurl4-openssl-dev \ libexpat1-dev \ gettext \ libz-dev \ fakeroot \ ccache \ distcc \ unzip \ apt-transport-https \ gnupg \ pkg-config \ python3 \ file <%= Snippets.new(exclude: %w[rust ruby]).populate %> FROM debian:12 MAINTAINER GitLab Inc. <support@gitlab.com> COPY --from=builder / /