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 / /