Use jq over file for more resilient tarball discovery
rodzic
e6bac5537f
commit
c0a1a64d03
11
Dockerfile
11
Dockerfile
|
@ -12,16 +12,23 @@ RUN \
|
|||
apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
file \
|
||||
git \
|
||||
jq \
|
||||
tzdata \
|
||||
xz
|
||||
|
||||
# grab base tarball
|
||||
RUN \
|
||||
git clone --depth=1 https://git.launchpad.net/cloud-images/+oci/ubuntu-base -b ${TAG} /build && \
|
||||
cd /build/oci && \
|
||||
DIGEST=$(jq -r '.manifests[0].digest[7:]' < index.json) && \
|
||||
cd /build/oci/blobs/sha256 && \
|
||||
for i in ./*; do if $(file -b $i | grep -q 'gzip'); then TARBALL=$i;fi; done && \
|
||||
if jq -e '.layers // empty' < "${DIGEST}" >/dev/null 2>&1; then \
|
||||
TARBALL=$(jq -r '.layers[0].digest[7:]' < ${DIGEST}); \
|
||||
else \
|
||||
MULTIDIGEST=$(jq -r ".manifests[] | select(.platform.architecture == \"${ARCH}\") | .digest[7:]" < ${DIGEST}) && \
|
||||
TARBALL=$(jq -r '.layers[0].digest[7:]' < ${MULTIDIGEST}); \
|
||||
fi && \
|
||||
mkdir /root-out && \
|
||||
tar xf \
|
||||
${TARBALL} -C \
|
||||
|
|
|
@ -9,19 +9,26 @@ ENV TAG=dist-noble-arm64v8-20240429-4129f303
|
|||
|
||||
# install packages
|
||||
RUN \
|
||||
apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
file \
|
||||
git \
|
||||
tzdata \
|
||||
xz
|
||||
apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
git \
|
||||
jq \
|
||||
tzdata \
|
||||
xz
|
||||
|
||||
# grab base tarball
|
||||
RUN \
|
||||
git clone --depth=1 https://git.launchpad.net/cloud-images/+oci/ubuntu-base -b ${TAG} /build && \
|
||||
cd /build/oci && \
|
||||
DIGEST=$(jq -r '.manifests[0].digest[7:]' < index.json) && \
|
||||
cd /build/oci/blobs/sha256 && \
|
||||
for i in ./*; do if $(file -b $i | grep -q 'gzip'); then TARBALL=$i;fi; done && \
|
||||
if jq -e '.layers // empty' < "${DIGEST}" >/dev/null 2>&1; then \
|
||||
TARBALL=$(jq -r '.layers[0].digest[7:]' < ${DIGEST}); \
|
||||
else \
|
||||
MULTIDIGEST=$(jq -r ".manifests[] | select(.platform.architecture == \"${ARCH}\") | .digest[7:]" < ${DIGEST}) && \
|
||||
TARBALL=$(jq -r '.layers[0].digest[7:]' < ${MULTIDIGEST}); \
|
||||
fi && \
|
||||
mkdir /root-out && \
|
||||
tar xf \
|
||||
${TARBALL} -C \
|
||||
|
|
Ładowanie…
Reference in New Issue