File tree Expand file tree Collapse file tree 6 files changed +36
-6
lines changed
Expand file tree Collapse file tree 6 files changed +36
-6
lines changed Original file line number Diff line number Diff line change 44/rd.yaml
55/std.yaml
66/nerdctl- *
7+ /qemu- *
Original file line number Diff line number Diff line change 11ARG ALPINE_VERSION=latest
2+ ARG BINFMT_IMAGE=tonistiigi/binfmt:latest
3+
4+ FROM ${BINFMT_IMAGE} as binfmt
5+
26FROM alpine:${ALPINE_VERSION}
37RUN apk add alpine-sdk build-base apk-tools alpine-conf busybox \
48 fakeroot xorriso squashfs-tools sudo \
@@ -8,6 +12,8 @@ RUN apk add alpine-sdk build-base apk-tools alpine-conf busybox \
812ARG TARGETARCH
913RUN if [ "${TARGETARCH}" = "amd64" ]; then apk add syslinux; fi
1014
15+ COPY --from=binfmt /usr/bin /binfmt
16+
1117RUN addgroup root abuild
1218RUN abuild-keygen -i -a -n
1319RUN apk update
Original file line number Diff line number Diff line change @@ -18,24 +18,30 @@ ARCH_ALIAS_aarch64 = arm64
1818ARCH_ALIAS = $(shell echo "$(ARCH_ALIAS_$(ARCH ) ) ")
1919
2020NERDCTL_VERSION =0.14.0
21+ QEMU_VERSION =v6.1.0
22+ BINFMT_IMAGE =tonistiigi/binfmt:qemu-$(QEMU_VERSION )
2123
2224.PHONY : mkimage
2325mkimage :
2426 cd src/aports && git fetch && git checkout $(GIT_TAG )
2527 docker build \
2628 --tag mkimage:$(ALPINE_VERSION ) -$(ARCH ) \
2729 --build-arg ALPINE_VERSION=$(ALPINE_VERSION ) \
30+ --build-arg BINFMT_IMAGE=$(BINFMT_IMAGE ) \
2831 --platform linux/$(ARCH_ALIAS ) \
2932 .
3033
3134.PHONY : iso
32- iso : nerdctl-$(NERDCTL_VERSION ) -$(ARCH )
33- ALPINE_VERSION=$(ALPINE_VERSION ) NERDCTL_VERSION=$(NERDCTL_VERSION ) REPO_VERSION=$(REPO_VERSION ) EDITION=$(EDITION ) BUILD_ID=$(BUILD_ID ) ARCH=$(ARCH ) ARCH_ALIAS=$(ARCH_ALIAS ) ./build.sh
35+ iso : nerdctl-$(NERDCTL_VERSION ) -$(ARCH ) qemu- $( QEMU_VERSION ) -copying
36+ ALPINE_VERSION=$(ALPINE_VERSION ) NERDCTL_VERSION=$(NERDCTL_VERSION ) QEMU_VERSION= $( QEMU_VERSION ) REPO_VERSION=$(REPO_VERSION ) EDITION=$(EDITION ) BUILD_ID=$(BUILD_ID ) ARCH=$(ARCH ) ARCH_ALIAS=$(ARCH_ALIAS ) ./build.sh
3437
3538
3639nerdctl-$(NERDCTL_VERSION ) -$(ARCH ) :
3740 curl -o $@ -Ls https://github.com/containerd/nerdctl/releases/download/v$(NERDCTL_VERSION ) /nerdctl-full-$(NERDCTL_VERSION ) -linux-$(ARCH_ALIAS ) .tar.gz
3841
42+ qemu-$(QEMU_VERSION ) -copying :
43+ curl -o $@ -Ls https://raw.githubusercontent.com/qemu/qemu/$(QEMU_VERSION ) /COPYING
44+
3945.PHONY : lima
4046lima :
4147 ALPINE_VERSION=$(ALPINE_VERSION ) EDITION=$(EDITION ) ARCH=$(ARCH ) ./lima.sh
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ docker run --rm \
1717 -v " ${PWD} /lima-init-local.openrc:/home/build/lima-init-local.openrc:ro" \
1818 -v " ${PWD} /lima-network.awk:/home/build/lima-network.awk:ro" \
1919 -v " ${PWD} /nerdctl-${NERDCTL_VERSION} -${ARCH} :/home/build/nerdctl.tar.gz:ro" \
20+ -v " ${PWD} /qemu-${QEMU_VERSION} -copying:/home/build/qemu-copying:ro" \
2021 -v " ${PWD} /sshd.pam:/home/build/sshd.pam:ro" \
2122 $( env | grep ^LIMA_ | xargs -n 1 printf -- ' -e %s ' ) \
2223 -e " LIMA_REPO_VERSION=${REPO_VERSION} " \
Original file line number Diff line number Diff line change @@ -159,7 +159,20 @@ if [ "${LIMA_INSTALL_DOCKER}" == "true" ]; then
159159fi
160160
161161if [ " ${LIMA_INSTALL_BINFMT_MISC} " == " true" ]; then
162- echo " qemu-aarch64" >> " $tmp " /etc/apk/world
162+ # install qemu-aarch64 on x86_64 and vice versa
163+ OTHERARCH=aarch64
164+ if [ " $( uname -m) " == " ${OTHERARCH} " ]; then
165+ OTHERARCH=x86_64
166+ fi
167+
168+ # Installing into /usr/bin instead of /usr/local/bin because that's
169+ # where /etc/init.d/qemu-binfmt will be looking for it
170+ mkdir -p " ${tmp} /usr/bin/"
171+ cp /binfmt/qemu-${OTHERARCH} " ${tmp} /usr/bin/"
172+
173+ # Copy QEMU license into /usr/share/doc (using Debian naming convention)
174+ mkdir -p " ${tmp} /usr/share/doc/qemu/"
175+ cp /home/build/qemu-copying " ${tmp} /usr/share/doc/qemu/copyright"
163176
164177 mkdir -p " ${tmp} /etc/init.d/"
165178 APKBUILD=/home/build/aports/community/qemu-openrc/APKBUILD
@@ -168,6 +181,12 @@ if [ "${LIMA_INSTALL_BINFMT_MISC}" == "true" ]; then
168181 wget " ${URL} /v${PKGVER} /qemu-binfmt.initd" -O " ${tmp} /etc/init.d/qemu-binfmt"
169182 chmod +x " ${tmp} /etc/init.d/qemu-binfmt"
170183
184+ # qemu-binfmt doesn't include an entry for x86_64
185+ magic=" 7f454c4602010100000000000000000002003e00"
186+ mask=" fffffffffffefe00fffffffffffffffffeffffff"
187+ arch=" x86_64"
188+ sed -i " /^FMTS=/a \\ \t${magic} ${mask} ${arch} " " ${tmp} /etc/init.d/qemu-binfmt"
189+
171190 rc_add qemu-binfmt default
172191fi
173192
Original file line number Diff line number Diff line change @@ -27,9 +27,6 @@ profile_lima() {
2727 if [ " ${LIMA_INSTALL_LIMA_INIT} " == " true" ]; then
2828 apks=" $apks e2fsprogs lsblk sfdisk shadow sudo udev"
2929 fi
30- if [ " ${LIMA_INSTALL_BINFMT_MISC} " == " true" ]; then
31- apks=" $apks qemu-aarch64"
32- fi
3330 if [ " ${LIMA_INSTALL_K3S} " == " true" ]; then
3431 apks=" $apks k3s"
3532 fi
You can’t perform that action at this time.
0 commit comments