You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.2 KiB

# This Dockerfile creates a portage snapshot that can be mounted as a
# container volume. It utilizes a multi-stage build and requires
# docker-17.05.0 or later. It fetches a daily snapshot from the official
# sources and verifies its checksum as well as its gpg signature.
FROM --platform=$BUILDPLATFORM alpine:3.11 as builder
WORKDIR /portage
ARG SNAPSHOT="portage-latest.tar.xz"
RUN apk add --no-cache ca-certificates gnupg tar wget xz \
&& wget -q "${DIST}/${SNAPSHOT}" "${DIST}/${SNAPSHOT}.gpgsig" "${DIST}/${SNAPSHOT}.md5sum" \
&& gpg --list-keys \
&& echo "honor-http-proxy" >> ~/.gnupg/dirmngr.conf \
&& echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
&& gpg --keyserver hkps:// --recv-keys ${SIGNING_KEY} \
&& gpg --verify "${SNAPSHOT}.gpgsig" "${SNAPSHOT}" \
&& md5sum -c ${SNAPSHOT}.md5sum \
&& mkdir -p var/db/repos var/cache/binpkgs var/cache/distfiles \
&& tar xJpf ${SNAPSHOT} -C var/db/repos \
&& mv var/db/repos/portage var/db/repos/gentoo \
&& rm ${SNAPSHOT} ${SNAPSHOT}.gpgsig ${SNAPSHOT}.md5sum
FROM busybox:latest
COPY --from=builder /portage/ /
CMD /bin/true
VOLUME /var/db/repos/gentoo