Fixing multi-arch container builds

This commit is contained in:
Amir Zarrinkafsh 2020-05-20 15:31:02 +10:00
parent c92844bd0e
commit 5a5412c5d1
No known key found for this signature in database
GPG Key ID: ECDB8EF9E77E4EBF
3 changed files with 20 additions and 11 deletions

View File

@ -1,6 +1,12 @@
FROM arm32v7/alpine:3.11 FROM alpine as qemu
COPY qemu-arm-static /usr/bin
ARG QEMU_VERSION "v4.2.0-7"
RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-arm-static && chmod +x qemu-arm-static
FROM arm32v7/alpine:3.11
COPY --from=qemu qemu-arm-static /usr/bin/
COPY ./ /www/ COPY ./ /www/
ENV USER darkhttpd ENV USER darkhttpd
@ -9,7 +15,8 @@ ENV GID 911
ENV UID 911 ENV UID 911
RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} && \ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} && \
apk add -U darkhttpd apk add -U darkhttpd && \
rm /usr/bin/qemu-arm-static
USER darkhttpd USER darkhttpd

View File

@ -1,6 +1,12 @@
FROM arm64v8/alpine:3.11 FROM alpine as qemu
COPY qemu-arm-static /usr/bin
ARG QEMU_VERSION "v4.2.0-7"
RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-aarch64-static && chmod +x qemu-aarch64-static
FROM arm64v8/alpine:3.11
COPY --from=qemu qemu-aarch64-static /usr/bin/
COPY ./ /www/ COPY ./ /www/
ENV USER darkhttpd ENV USER darkhttpd
@ -9,7 +15,8 @@ ENV GID 911
ENV UID 911 ENV UID 911
RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} && \ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} && \
apk add -U darkhttpd apk add -U darkhttpd && \
rm /usr/bin/qemu-aarch64-static
USER darkhttpd USER darkhttpd

View File

@ -1,10 +1,5 @@
#!/bin/bash #!/bin/bash
#!/bin/bash
# downloads a local copy of qemu on docker-hub build machines
curl -L https://github.com/balena-io/qemu/releases/download/v3.0.0%2Bresin/qemu-3.0.0+resin-arm.tar.gz | tar zxvf - -C . && mv qemu-3.0.0+resin-arm/qemu-arm-static .
docker manifest push --purge b4bz/homer:latest docker manifest push --purge b4bz/homer:latest
docker manifest create b4bz/homer:latest b4bz/homer:latest-amd64 b4bz/homer:latest-arm32v7 b4bz/homer:latest-arm64v8 docker manifest create b4bz/homer:latest b4bz/homer:latest-amd64 b4bz/homer:latest-arm32v7 b4bz/homer:latest-arm64v8
docker manifest annotate b4bz/homer:latest b4bz/homer:latest-arm32v7 --os linux --arch arm docker manifest annotate b4bz/homer:latest b4bz/homer:latest-arm32v7 --os linux --arch arm