blob: ddaadf0a985bc0f1dba4ac55317a33981d7a4857 [file] [log] [blame] [edit]
FROM debian:13 AS debian13-java21
ARG TARGETARCH
ENV DEBIAN_FRONTEND="noninteractive"
ENV LANG "C.UTF-8"
ENV LANGUAGE "C.UTF-8"
ENV LC_ALL "C.UTF-8"
### Install packages required by Bazel and its tests
RUN apt-get -y update && \
apt-get -y install --no-install-recommends \
apt-utils \
bind9-host \
build-essential \
clang \
clang-tools \
coreutils \
curl \
dnsutils \
ed \
expect \
file \
git \
gnupg2 \
iproute2 \
iputils-ping \
lcov \
less \
libssl-dev \
llvm \
llvm-dev \
lsb-release \
netcat-openbsd \
openjdk-21-jdk-headless \
python3 \
python3-dev \
python3-pip \
python3-requests \
python3-setuptools \
python3-six \
python3-wheel \
python3-yaml \
sudo \
unzip \
wget \
xvfb \
zip \
zlib1g-dev \
&& \
rm -rf /var/lib/apt/lists/*
# Allow using sudo inside the container.
RUN echo "ALL ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
ENV JAVA_HOME /usr/lib/jvm/java-21-openjdk-${TARGETARCH}
### Install Google Cloud SDK.
RUN mkdir -p /usr/share/keyrings && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg && \
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
apt-get update -y && apt-get install google-cloud-sdk -y && \
rm -rf /var/lib/apt/lists/*
### Docker (for legacy rbe_autoconfig)
RUN apt-get -y update && \
apt-get -y install apt-transport-https ca-certificates && \
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$TARGETARCH signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get -y update && \
apt-get -y install docker-ce && \
rm -rf /var/lib/apt/lists/*
# Bazelisk
RUN LATEST_BAZELISK=$(curl -sSI https://github.com/bazelbuild/bazelisk/releases/latest | grep -i '^location: ' | sed 's|.*/||' | sed $'s/\r//') && \
curl -Lo /usr/local/bin/bazel https://github.com/bazelbuild/bazelisk/releases/download/${LATEST_BAZELISK}/bazelisk-linux-${TARGETARCH} && \
chown root:root /usr/local/bin/bazel && \
chmod 0755 /usr/local/bin/bazel
# Buildifier
RUN LATEST_BUILDIFIER=$(curl -sSI https://github.com/bazelbuild/buildtools/releases/latest | grep -i '^location: ' | sed 's|.*/||' | sed $'s/\r//') && \
curl -Lo /usr/local/bin/buildifier https://github.com/bazelbuild/buildtools/releases/download/${LATEST_BUILDIFIER}/buildifier-linux-${TARGETARCH} && \
chown root:root /usr/local/bin/buildifier && \
chmod 0755 /usr/local/bin/buildifier