2024-05-15 14:38:48 +00:00
|
|
|
# syntax=docker/dockerfile:1
|
2024-10-17 03:35:21 +00:00
|
|
|
ARG BASE_IMAGE=node:23-bookworm-slim
|
2023-11-16 17:49:44 +00:00
|
|
|
|
|
|
|
FROM ${BASE_IMAGE}
|
|
|
|
|
2023-12-22 22:36:40 +00:00
|
|
|
ARG LLVM_VERSION=16
|
2024-11-28 12:54:03 +00:00
|
|
|
ARG TARGETARCH
|
2023-12-22 22:36:40 +00:00
|
|
|
|
2024-05-15 14:38:48 +00:00
|
|
|
# common tools
|
2023-11-16 17:49:44 +00:00
|
|
|
RUN --mount=type=cache,target=/var/lib/apt \
|
|
|
|
--mount=type=cache,target=/var/lib/cache \
|
2024-05-15 14:38:48 +00:00
|
|
|
--mount=type=cache,target=/var/cache/apt \
|
2023-11-16 17:49:44 +00:00
|
|
|
apt-get update && \
|
2023-12-22 09:24:56 +00:00
|
|
|
apt-get install -y \
|
2024-11-28 12:10:35 +00:00
|
|
|
sudo \
|
|
|
|
git-lfs \
|
|
|
|
ca-certificates \
|
|
|
|
curl \
|
|
|
|
jq \
|
|
|
|
gnupg \
|
|
|
|
gcc \
|
|
|
|
clang-${LLVM_VERSION} \
|
|
|
|
llvm-${LLVM_VERSION} \
|
|
|
|
libbpf-dev \
|
|
|
|
make \
|
|
|
|
unzip \
|
|
|
|
libgraphite2-3 \
|
|
|
|
zstd && \
|
2023-12-22 18:34:22 +00:00
|
|
|
ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/clang /usr/bin/clang && \
|
2024-05-15 14:38:48 +00:00
|
|
|
ln -s -f /usr/lib/llvm-${LLVM_VERSION}/bin/llc /usr/bin/
|
|
|
|
|
|
|
|
ADD --chmod=444 https://cli.github.com/packages/githubcli-archive-keyring.gpg /etc/apt/keyrings/githubcli-archive-keyring.gpg
|
|
|
|
ADD --chmod=444 https://download.docker.com/linux/debian/gpg /etc/apt/keyrings/docker.asc
|
|
|
|
|
|
|
|
# Docker and other tools
|
|
|
|
RUN --mount=type=cache,target=/var/lib/apt \
|
|
|
|
--mount=type=cache,target=/var/lib/cache \
|
|
|
|
--mount=type=cache,target=/var/cache/apt \
|
|
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list && \
|
2023-11-16 17:49:44 +00:00
|
|
|
echo \
|
2024-11-28 12:10:35 +00:00
|
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list && \
|
2023-11-16 17:49:44 +00:00
|
|
|
apt-get update && \
|
2024-05-15 14:38:48 +00:00
|
|
|
apt-get install -y \
|
2024-11-28 12:10:35 +00:00
|
|
|
gh \
|
|
|
|
docker-ce docker-ce-cli containerd.io docker-buildx-plugin
|
|
|
|
|
|
|
|
# AWS CLI
|
|
|
|
RUN --mount=type=cache,target=/tmp \
|
2024-11-28 12:54:03 +00:00
|
|
|
if [ "${TARGETARCH}" = "amd64" ]; then \
|
|
|
|
curl -o "/tmp/awscliv2.zip" "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"; \
|
|
|
|
elif [ "${TARGETARCH}" = "arm64" ]; then \
|
|
|
|
curl -o "/tmp/awscliv2.zip" "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip"; \
|
|
|
|
else \
|
|
|
|
echo "Unsupported architecture: ${TARGETARCH}"; \
|
|
|
|
exit 1; \
|
|
|
|
fi && \
|
|
|
|
unzip -o /tmp/awscliv2.zip -d /tmp && \
|
2024-11-28 12:10:35 +00:00
|
|
|
/tmp/aws/install
|