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

FROM almalinux:9 as builder # Install required packages RUN yum update -y -q RUN yum install -y 'dnf-command(config-manager)' RUN yum install -y epel-release \ && yum config-manager --set-enabled crb RUN yum install -y --allowerasing -q \ autoconf \ automake \ clang-devel \ gettext-devel \ glibc-locale-source \ gcc \ gcc-c++ \ curl-devel \ expat-devel \ gettext-devel \ krb5-devel \ openssl-devel \ perl-devel \ zlib-devel \ make \ libyaml-devel \ libffi-devel \ libgcrypt-devel \ readline-devel \ zlib-devel \ gdbm-devel \ meson \ ninja-build \ ncurses-devel \ bzip2 \ which \ byacc \ libgpg-error-devel \ libassuan-devel \ ccache \ unzip \ libatomic \ libstdc++-static \ openssh-clients \ rpm-build \ rpm-sign \ python3 \ perl-FindBin \ file \ selinux-policy-devel \ perl-IPC-Cmd ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8 # We are building pinentry-tty because CentOS 8's pinenetry package expose # only the ncurses frontend, not tty. This, for some reason, does not work # with rpmsign. ENV PINENTRY_VERSION 1.1.0 RUN curl -fsSL "https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-${PINENTRY_VERSION}.tar.bz2" \ | tar -jxC /tmp \ && cd /tmp/pinentry-${PINENTRY_VERSION} \ && ./configure --disable-pinentry-gtk2 --disable-pinentry-gnome --disable-pinentry-qt --disable-pinentry-curses --enable-pinentry-tty --prefix=/usr \ && make \ && make install <%= Snippets.new(include: %w[versions openssl]).populate %> ENV RUBY_CONFIGURE_EXTRA_OPTS='--with-openssl-dir=/usr/local/openssl' <%= Snippets.new(platform: 'arm64').populate %> FROM almalinux:9 MAINTAINER GitLab Inc. <support@gitlab.com> COPY --from=builder / /