59 lines
2.0 KiB
Docker
59 lines
2.0 KiB
Docker
FROM ubuntu:24.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
ARG TARGETARCH
|
|
ARG NODE_VERSION=22.23.1
|
|
|
|
# Install base tools, Docker, and utilities
|
|
RUN apt-get update && apt-get install -y \
|
|
bash \
|
|
curl \
|
|
wget \
|
|
git \
|
|
openssh-client \
|
|
ca-certificates \
|
|
tar \
|
|
gzip \
|
|
unzip \
|
|
zip \
|
|
jq \
|
|
rsync \
|
|
gettext-base \
|
|
make \
|
|
build-essential \
|
|
docker.io \
|
|
docker-buildx \
|
|
docker-compose-v2 \
|
|
xz-utils \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install a current Node.js LTS runtime for JavaScript actions such as
|
|
# actions/checkout@v4. Ubuntu 24.04's nodejs package is Node 18, which is too
|
|
# old for current Gitea Actions runners. The official tarball supplies `node`;
|
|
# keep a `nodejs` alias as well for tooling that expects Debian's command name.
|
|
RUN case "${TARGETARCH}" in \
|
|
amd64) NODE_ARCH=x64 ;; \
|
|
arm64) NODE_ARCH=arm64 ;; \
|
|
*) echo "Unsupported Node.js architecture: ${TARGETARCH}" >&2; exit 1 ;; \
|
|
esac && \
|
|
curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" && \
|
|
curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/SHASUMS256.txt" && \
|
|
grep " node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz$" SHASUMS256.txt | sha256sum -c - && \
|
|
tar -xJf "node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && \
|
|
ln -sf /usr/local/bin/node /usr/local/bin/nodejs && \
|
|
rm "node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" SHASUMS256.txt
|
|
|
|
# Download and install kubectl matching the target architecture
|
|
RUN KUBE_VER=$(curl -L -s https://dl.k8s.io/release/stable.txt) && \
|
|
curl -LO "https://dl.k8s.io/release/${KUBE_VER}/bin/linux/${TARGETARCH}/kubectl" && \
|
|
install -m 0755 kubectl /usr/local/bin/kubectl && \
|
|
rm kubectl
|
|
|
|
# Install yq (Go-based binary)
|
|
RUN YQ_VER="v4.44.1" && \
|
|
curl -Lo /usr/local/bin/yq "https://github.com/mikefarah/yq/releases/download/${YQ_VER}/yq_linux_${TARGETARCH}" && \
|
|
chmod +x /usr/local/bin/yq
|
|
|
|
CMD ["/bin/bash"]
|