FROM node:22-alpine

ENV PATH="/aarch64-linux-musl-cross/bin:/usr/local/cargo/bin/rustup:/root/.cargo/bin:$PATH" \
  RUSTFLAGS="-C target-feature=-crt-static" \
  CC="clang" \
  CXX="clang++" \
  GN_EXE=gn

RUN apk add --update --no-cache bash wget cmake musl-dev clang llvm build-base python3 git tar ninja && \
  wget https://sh.rustup.rs -O rustup-init.sh && \
  chmod +x rustup-init.sh

RUN ./rustup-init.sh -y && \
  rustup update stable && \
  rustup default stable && \
  yarn global add pnpm lerna && \
  rustup target add aarch64-unknown-linux-musl && \
  rustup target add x86_64-unknown-linux-musl && \
  wget https://github.com/napi-rs/napi-rs/releases/download/linux-musl-cross%4010/aarch64-linux-musl-cross.tgz && \
  tar -xvf aarch64-linux-musl-cross.tgz && \
  rm aarch64-linux-musl-cross.tgz && \
  rm rustup-init.sh