diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8 new file mode 100644 index 0000000..011279c --- /dev/null +++ b/Dockerfile.arm64v8 @@ -0,0 +1,43 @@ +FROM alpine AS builder + +ENV QEMU_URL https://github.com/balena-io/qemu/releases/download/v3.0.0%2Bresin/qemu-3.0.0+resin-aarch64.tar.gz +RUN apk add curl && curl -L ${QEMU_URL} | tar zxvf - -C . --strip-components 1 + +FROM arm64v8/alpine:3.9 + +COPY --from=builder qemu-arm-static /usr/bin +RUN mkdir application +WORKDIR /application +ADD . /application + +RUN apk add --no-cache tzdata python3 git bluez glib-dev make bluez-dev bluez-libs musl-dev linux-headers gcc grep && \ + python3 -m ensurepip && \ + rm -r /usr/lib/python*/ensurepip && \ + pip3 install --upgrade pip setuptools && \ + if [ ! -e /usr/bin/pip ]; then \ + ln -s pip3 /usr/bin/pip ; \ + fi && \ + if [[ ! -e /usr/bin/python ]]; then \ + ln -sf /usr/bin/python3 /usr/bin/python; \ + fi && \ + rm -r /root/.cache && \ + mkdir /config && \ + pip install -r requirements.txt && \ + ln -s /config/config.yaml ./config.yaml && \ + apk del --no-cache bluez-dev musl-dev gcc make git glib-dev linux-headers grep python2 + +RUN apk add --no-cache tzdata python3 git bluez glib-dev make bluez-dev bluez-libs musl-dev linux-headers gcc grep && \ + grep -P "(?<=REQUIREMENTS).*" workers/*.py | grep -Po "(?<=\[).*(?=\])" | tr ',' '\n' | tr "'" " "| tr "\"" " " > /tmp/requirements.txt && \ + cat /tmp/requirements.txt && \ + pip install -r /tmp/requirements.txt && \ + rm /tmp/requirements.txt && \ + apk del --no-cache bluez-dev musl-dev gcc make git glib-dev linux-headers grep python2 + +ADD ./start.sh /start.sh +RUN chmod +x /start.sh + +ENV DEBUG false + +VOLUME ["/config"] + +ENTRYPOINT ["/bin/sh", "-c", "/start.sh"] diff --git a/multi-arch-manifest.yaml b/multi-arch-manifest.yaml index 84e3797..69e3229 100644 --- a/multi-arch-manifest.yaml +++ b/multi-arch-manifest.yaml @@ -9,3 +9,8 @@ manifests: architecture: arm os: linux variant: v7 + - image: zewelor/bt-mqtt-gateway:arm64v8 + platform: + architecture: arm64 + os: linux + variant: v8