packages/

yarn

Details
Source
FROM scratch AS base
ENV VERSION=1.22.22
ENV SRC_HASH=88268464199d1611fcf73ce9c0a6c4d44c7d5363682720d8506f6508addf36a0
ENV SRC_FILE=yarn-v${VERSION}.tar.gz
ENV SRC_SITE=https://yarnpkg.com/downloads/${VERSION}/${SRC_FILE}

FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .

FROM fetch AS build
COPY --from=stagex/musl . /
COPY --from=stagex/busybox . /
RUN tar -xf ${SRC_FILE}
WORKDIR /yarn-v${VERSION}

FROM build AS install
ENV DESTDIR=/rootfs
RUN --network=none <<-EOF
	destdir="usr/share/node_modules/yarn"

	mkdir -p $DESTDIR/$destdir
	cp -R ./* $DESTDIR/$destdir

	# Windows files
	rm $DESTDIR/$destdir/bin/*.cmd
	# Shell shim
	rm $DESTDIR/$destdir/bin/yarn
	# Old alias
	rm $DESTDIR/$destdir/bin/yarnpkg

	mkdir -p $DESTDIR/usr/bin
	ln -s ../share/node_modules/yarn/bin/yarn.js $DESTDIR/usr/bin/yarn
	ln -s ../share/node_modules/yarn/bin/yarn.js $DESTDIR/usr/bin/yarnpkg

	sed -i 's/\"tar\"/\"stagex\"/g' $DESTDIR/$destdir/package.json
EOF

FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /