| pulled from docker.io/library/ubuntu:24.04@sha256:c35e29c9450151419d9448b0fd75374fec4fff364a27f176fb458d472dfc9e54 |
| 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-arm64 |
| mount / from exec chmod +x /usr/local/bin/jq |
| withfile /usr/local/bin/yq yq_linux_arm64 |
| mount / from exec chmod +x /usr/local/bin/yq |
| withfile /tmp/node-v20.19.6-linux-arm64.tar.xz node-v20.19.6-linux-arm64.tar.xz |
| withfile /tmp/node-v22.21.1-linux-arm64.tar.xz node-v22.21.1-linux-arm64.tar.xz |
| withfile /tmp/node-v24.11.1-linux-arm64.tar.xz node-v24.11.1-linux-arm64.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-arm64.tar.xz" "20.19.6" 20
extract_node "/tmp/node-v22.21.1-linux-arm64.tar.xz" "22.21.1" 22
extract_node "/tmp/node-v24.11.1-linux-arm64.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/* |
| withfile /tmp/dagger_v0.19.8_linux_arm64.tar.gz dagger_v0.19.8_linux_arm64.tar.gz |
| mount / from exec tar -xzf /tmp/dagger_v0.19.8_linux_arm64.tar.gz -C /usr/local/bin |