stagex/packages/yarn/Containerfile
2024-09-02 11:52:20 +02:00

39 lines
1 KiB
Docker

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/. /