docker/Dockerfile_framework_go_next_arm64.erb (64 lines of code) (raw):
FROM debian:11-slim as builder
# Install core necessities
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
curl \
bzip2 \
unzip \
locales \
ca-certificates \
&& ln -s /etc/ssl/certs/ca-certificates.crt /usr/lib/ssl/cert.pem
# Currently, some projects use the `gcc` build stack as part of their module
# imports for Go libraries that may need it. We can support this behavior in
# the first iteration, but eventually those libraries should be identified,
# built separately, and then imported to reduce the amount of places we
# define our `gcc` build stack.
RUN apt-get install -y --no-install-recommends \
build-essential \
make \
autoconf \
automake \
autopoint \
gettext \
byacc \
fakeroot \
ccache \
distcc \
apt-transport-https \
gnupg \
pkg-config \
file \
clang \
gcc \
g++ \
libcurl4-openssl-dev \
libexpat1-dev \
gettext \
libz-dev \
libssl-dev \
zlib1g-dev \
libssl-dev \
libclang-dev \
libyaml-dev \
libffi-dev \
libkrb5-dev \
libreadline-dev \
libgdbm-dev \
libncurses5-dev \
llvm-dev \
libz-dev
<%= Snippets.new(platform: 'arm64', include: %w[versions]).populate %>
ENV GO_VERSION="${GO_VERSION_NEXT}"
<%= Snippets.new(platform: 'arm64', include: %w[go git]).populate %>
RUN apt-get remove -y \
libcurl4-openssl-dev \
libexpat1-dev \
gettext \
libz-dev \
libssl-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -yq git \
&& apt-get clean -yqq \
&& rm -rf /var/lib/apt/lists/*
FROM debian:11-slim
MAINTAINER GitLab Inc. <support@gitlab.com>
COPY --from=builder / /