diff --git a/Dockerfile b/Dockerfile index 89f3e92..cdd8a5f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ ARG SIGNAL_CLI_VERSION=0.10.0 ARG LIBSIGNAL_CLIENT_VERSION=0.11.0 +ARG SIGNAL_CLI_NATIVE_PACKAGE_VERSION=0.10.0-11 ARG SWAG_VERSION=1.6.7 ARG GRAALVM_JAVA_VERSION=17 @@ -15,6 +16,7 @@ ARG SWAG_VERSION ARG GRAALVM_JAVA_VERSION ARG GRAALVM_VERSION ARG BUILD_VERSION_ARG +ARG SIGNAL_CLI_NATIVE_PACKAGE_VERSION COPY ext/libraries/libsignal-client/v${LIBSIGNAL_CLIENT_VERSION} /tmp/libsignal-client-libraries @@ -74,10 +76,17 @@ RUN if [ "$(uname -m)" = "x86_64" ]; then \ && /tmp/graalvm-ce-java${GRAALVM_JAVA_VERSION}-${GRAALVM_VERSION}/bin/gu install native-image \ && ./gradlew nativeCompile; \ elif [ "$(uname -m)" = "aarch64" ] ; then \ - echo "GRAALVM for aarch64 temporarily disabled" \ - && echo "Creating temporary file, otherwise the below copy doesn't work for aarch64" \ + echo "Use native image from @morph027 (https://packaging.gitlab.io/signal-cli/) for arm64 - many thanks to @morph027" \ + && curl -fsSL https://packaging.gitlab.io/signal-cli/gpg.key | apt-key add - \ + && echo "deb https://packaging.gitlab.io/signal-cli focal main" > /etc/apt/sources.list.d/morph027-signal-cli.list \ + && mkdir -p /tmp/signal-cli-native \ + && cd /tmp/signal-cli-native \ + && apt-get update \ + && apt-get download signal-cli-native=${SIGNAL_CLI_NATIVE_PACKAGE_VERSION} \ + && ar x *.deb \ + && tar xvf data.tar.gz \ && mkdir -p /tmp/signal-cli-${SIGNAL_CLI_VERSION}-source/build/native/nativeCompile \ - && touch /tmp/signal-cli-${SIGNAL_CLI_VERSION}-source/build/native/nativeCompile/signal-cli; \ + && cp /tmp/signal-cli-native/usr/bin/signal-cli-native /tmp/signal-cli-${SIGNAL_CLI_VERSION}-source/build/native/nativeCompile/signal-cli; \ elif [ "$(uname -m)" = "armv7l" ] ; then \ echo "GRAALVM doesn't support 32bit" \ && echo "Creating temporary file, otherwise the below copy doesn't work for armv7" \