Peter Kurfer
3f550ad218
Some checks failed
Renovate / renovate (push) Successful in 1m0s
Image builds / build_images (caddy) (push) Successful in 3m18s
Image builds / build_images (renovate) (push) Successful in 3m33s
act_runtime / build_images (ubuntu:24.04, ubuntu-latest) (push) Successful in 22s
act_runtime / build_images (ubuntu:24.04, ubuntu-latest-amd64) (push) Failing after 2m2s
act_runtime / build_images (ubuntu:20.04, ubuntu-latest) (push) Successful in 5m28s
act_runtime / build_images (ubuntu:20.04, ubuntu-latest-amd64) (push) Failing after 14m54s
73 lines
2.5 KiB
Docker
73 lines
2.5 KiB
Docker
# syntax=docker/dockerfile:1
|
|
ARG BASE_IMAGE=ubuntu:24.04
|
|
|
|
FROM ${BASE_IMAGE}
|
|
|
|
ARG LLVM_VERSION=16
|
|
ARG TARGETARCH
|
|
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
|
|
|
# common tools
|
|
RUN --mount=type=cache,target=/var/lib/apt \
|
|
--mount=type=cache,target=/var/lib/cache \
|
|
--mount=type=cache,target=/var/cache/apt \
|
|
apt-get update && \
|
|
apt-get install -y \
|
|
lsb-release \
|
|
sudo \
|
|
git-lfs \
|
|
ca-certificates \
|
|
curl \
|
|
jq \
|
|
gnupg \
|
|
gcc \
|
|
clang-${LLVM_VERSION} \
|
|
llvm-${LLVM_VERSION} \
|
|
libbpf-dev \
|
|
make \
|
|
unzip \
|
|
nodejs \
|
|
libgraphite2-3 \
|
|
zstd && \
|
|
ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/clang /usr/bin/clang && \
|
|
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 && \
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list && \
|
|
apt-get update && \
|
|
apt-get install -y \
|
|
gh \
|
|
docker-ce-cli docker-buildx-plugin
|
|
|
|
# Rclone
|
|
RUN curl https://rclone.org/install.sh | bash
|
|
|
|
# AWS CLI
|
|
RUN --mount=type=cache,target=/tmp \
|
|
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 && \
|
|
/tmp/aws/install
|
|
|
|
# ArgoCD CLI
|
|
RUN curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-arm64 && \
|
|
chmod +x /usr/local/bin/argocd && \
|
|
argocd version --client
|
|
|
|
# kustomize
|
|
RUN curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash -s -- /usr/local/bin
|