stagex/packages/py-gpep517/Containerfile
2024-04-11 13:09:20 -07:00

36 lines
1 KiB
Docker

FROM scratch as base
ENV VERSION=15
ENV SRC_HASH=368fa8dfb0775589e3f85d34df18395c22980de8520dc6447e778fc1d0102787
ENV SRC_FILE=v${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/projg2/gpep517/archive/v${VERSION}/${SRC_FILE}
FROM base as fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
FROM fetch as install
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/python . /
COPY --from=stagex/zlib . /
RUN tar -xzf ${SRC_FILE}
WORKDIR gpep517-${VERSION}
COPY <<-'EOF' gpep517-cli
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from gpep517.__main__ import main
if __name__ == "__main__":
sys.exit(main())
EOF
RUN --network=none <<-EOF
set -eu
sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')"
mkdir -p "/rootfs/${sitedir}"
cp -a gpep517 "/rootfs/$sitedir"
python3 -m compileall "/rootfs/$sitedir"
install -Dm755 gpep517-cli /rootfs/usr/bin/gpep517
find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf
EOF
FROM stagex/filesystem as package
COPY --from=install /rootfs/. /