| pulled from ghcr.io/renovatebot/renovate:42.37.0@sha256:efe64ace1e9cbb53fdca8b84bedfe484dcaed127977c63d78fb420eeb34924fd |
| mount / from exec apt-get update |
| mount / from exec apt-get install -y ca-certificates curl wget gnupg lsb-release xz-utils |
| mount / from exec apt-get install -y git |
| withfile /usr/local/bin/jq jq-linux-amd64 |
| mount / from exec chmod +x /usr/local/bin/jq |
| withfile /usr/local/bin/yq yq_linux_amd64 |
| mount / from exec chmod +x /usr/local/bin/yq |
| withfile /tmp/node-v20.19.6-linux-x64.tar.xz node-v20.19.6-linux-x64.tar.xz |
| withfile /tmp/node-v22.21.1-linux-x64.tar.xz node-v22.21.1-linux-x64.tar.xz |
| withfile /tmp/node-v24.11.1-linux-x64.tar.xz node-v24.11.1-linux-x64.tar.xz |
| mount / from exec bash -lc set -euo pipefail
mkdir -p /opt
extract_node() {
tarball="$1"
ver="$2"
major="$3"
dest="/opt/node-v${ver}"
mkdir -p "$dest"
# Official tarballs extract as node-v<ver>-linux-<arch>; normalize into /opt/node-v<ver>
tar -xJf "$tarball" -C "$dest" --strip-components=1
if [ ! -d "$dest" ]; then
echo "Expected $dest to exist after extraction" >&2
exit 1
fi
ln -sf "$dest/bin/node" "/usr/local/bin/node${major}"
ln -sf "$dest/bin/npm" "/usr/local/bin/npm${major}"
if [ -f "$dest/bin/npx" ]; then
ln -sf "$dest/bin/npx" "/usr/local/bin/npx${major}"
fi
}
extract_node "/tmp/node-v20.19.6-linux-x64.tar.xz" "20.19.6" 20
extract_node "/tmp/node-v22.21.1-linux-x64.tar.xz" "22.21.1" 22
extract_node "/tmp/node-v24.11.1-linux-x64.tar.xz" "24.11.1" 24
# Set default to Node 24
ln -sf "/usr/local/bin/node24" "/usr/local/bin/node"
ln -sf "/usr/local/bin/npm24" "/usr/local/bin/npm"
if [ -e "/usr/local/bin/npx24" ]; then
ln -sf "/usr/local/bin/npx24" "/usr/local/bin/npx"
fi
|
| mount / from exec apt-get clean |
| mount / from exec rm -rf /var/lib/apt/lists/* |
| mount / from exec apt-get update |
| mount / from exec apt-get install -y python3 python3-pip |
| mount / from exec pip3 install --break-system-packages yamllint==1.35.1 |
| mount / from exec apt-get clean |