mirror of
https://github.com/bbernhard/signal-cli-rest-api.git
synced 2026-03-13 02:33:47 +00:00
Merge 32c793b2ebf32b8cf38190a174423157b4b62f80 into 1129e5a7bec43c90dc0631b8090a7ea590bcf082
This commit is contained in:
commit
a19cd686a9
49
Dockerfile
49
Dockerfile
@ -3,8 +3,7 @@ ARG LIBSIGNAL_CLIENT_VERSION=0.87.0
|
||||
ARG SIGNAL_CLI_NATIVE_PACKAGE_VERSION=0.13.24+morph027+2
|
||||
|
||||
ARG SWAG_VERSION=1.16.4
|
||||
ARG GRAALVM_VERSION=21.0.0
|
||||
#ARG GRAALVM_VERSION=25.0.2
|
||||
ARG GRAALVM_VERSION=25.0.2
|
||||
|
||||
ARG BUILD_VERSION_ARG=unset
|
||||
|
||||
@ -74,18 +73,20 @@ RUN if [ "$(uname -m)" = "x86_64" ]; then \
|
||||
cd /tmp \
|
||||
&& git clone https://github.com/AsamK/signal-cli.git signal-cli-${SIGNAL_CLI_VERSION}-source \
|
||||
&& cd signal-cli-${SIGNAL_CLI_VERSION}-source \
|
||||
&& git checkout -q v${SIGNAL_CLI_VERSION} \
|
||||
&& cd /tmp && mkdir -p /tmp/graalvm && tar xf gvm.tar.gz -C /tmp/graalvm --strip-components=1 \
|
||||
&& export GRAALVM_HOME=/tmp/graalvm \
|
||||
&& export PATH=/tmp/graalvm/bin:$PATH \
|
||||
&& cd /tmp/signal-cli-${SIGNAL_CLI_VERSION}-source \
|
||||
&& sed -i 's/Signal-Android\/5.22.3/Signal-Android\/5.51.7/g' src/main/java/org/asamk/signal/BaseConfig.java \
|
||||
&& ./gradlew build \
|
||||
&& ./gradlew installDist \
|
||||
&& ls build/install/signal-cli/lib/libsignal-client-${LIBSIGNAL_CLIENT_VERSION}.jar || (echo "\n\nsignal-client jar file with version ${LIBSIGNAL_CLIENT_VERSION} not found. Maybe the version needs to be bumped in the signal-cli-rest-api Dockerfile?\n\n" && echo "Available version: \n" && ls build/install/signal-cli/lib/libsignal-client-* && echo "\n\n" && exit 1) \
|
||||
&& BUILT_LIBSIGNAL_JAR=$(ls build/install/signal-cli/lib/ | grep 'libsignal-client-.*\.jar' | head -1) \
|
||||
&& echo "Built libsignal-client jar: ${BUILT_LIBSIGNAL_JAR}" \
|
||||
&& rm -rf /tmp/signal-cli-${SIGNAL_CLI_VERSION} \
|
||||
&& cp -a build/install/signal-cli /tmp/signal-cli-${SIGNAL_CLI_VERSION} \
|
||||
&& cd /tmp \
|
||||
&& cp signal-cli-${SIGNAL_CLI_VERSION}-source/build/install/signal-cli/lib/libsignal-client-${LIBSIGNAL_CLIENT_VERSION}.jar libsignal-client.jar \
|
||||
&& cp /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/${BUILT_LIBSIGNAL_JAR} libsignal-client.jar \
|
||||
&& zip -qu libsignal-client.jar libsignal_jni.so \
|
||||
&& cp libsignal-client.jar /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/${BUILT_LIBSIGNAL_JAR} \
|
||||
&& cd /tmp/signal-cli-${SIGNAL_CLI_VERSION}-source \
|
||||
&& git apply /tmp/signal-cli-native.patch \
|
||||
&& ./gradlew -q nativeCompile; \
|
||||
@ -113,20 +114,27 @@ RUN if [ "$(uname -m)" = "x86_64" ]; then \
|
||||
echo "Unknown architecture"; \
|
||||
fi;
|
||||
|
||||
# replace libsignal-client
|
||||
# Post-processing: inject native libsignal_jni.so and apply BaseConfig workaround.
|
||||
# On x86_64 the source build (above) already produced a patched installDist with
|
||||
# the native lib injected, so we only need to package it. On other architectures
|
||||
# the release tarball is still used — apply the BaseConfig sed workaround and
|
||||
# inject the native lib there.
|
||||
|
||||
RUN ls /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/libsignal-client-${LIBSIGNAL_CLIENT_VERSION}.jar || (echo "\n\nsignal-client jar file with version ${LIBSIGNAL_CLIENT_VERSION} not found. Maybe the version needs to be bumped in the signal-cli-rest-api Dockerfile?\n\n" && echo "Available version: \n" && ls /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/libsignal-client-* && echo "\n\n" && exit 1)
|
||||
|
||||
# workaround until upstream is fixed
|
||||
RUN cd /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib \
|
||||
&& unzip signal-cli-${SIGNAL_CLI_VERSION}.jar \
|
||||
&& sed -i 's/Signal-Android\/5.22.3/Signal-Android\/5.51.7/g' org/asamk/signal/BaseConfig.class \
|
||||
&& zip -r signal-cli-${SIGNAL_CLI_VERSION}.jar org/ META-INF/ \
|
||||
&& rm -rf META-INF \
|
||||
&& rm -rf org
|
||||
RUN if [ "$(uname -m)" != "x86_64" ]; then \
|
||||
ls /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/libsignal-client-${LIBSIGNAL_CLIENT_VERSION}.jar \
|
||||
|| (echo "\n\nsignal-client jar file with version ${LIBSIGNAL_CLIENT_VERSION} not found.\n\n" \
|
||||
&& ls /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/libsignal-client-* && exit 1) \
|
||||
&& cd /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib \
|
||||
&& unzip signal-cli-${SIGNAL_CLI_VERSION}.jar \
|
||||
&& sed -i 's/Signal-Android\/5.22.3/Signal-Android\/5.51.7/g' org/asamk/signal/BaseConfig.class \
|
||||
&& zip -r signal-cli-${SIGNAL_CLI_VERSION}.jar org/ META-INF/ \
|
||||
&& rm -rf META-INF \
|
||||
&& rm -rf org \
|
||||
&& cd /tmp/ \
|
||||
&& zip -qu /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/libsignal-client-${LIBSIGNAL_CLIENT_VERSION}.jar libsignal_jni.so; \
|
||||
fi
|
||||
|
||||
RUN cd /tmp/ \
|
||||
&& zip -qu /tmp/signal-cli-${SIGNAL_CLI_VERSION}/lib/libsignal-client-${LIBSIGNAL_CLIENT_VERSION}.jar libsignal_jni.so \
|
||||
&& zip -qr signal-cli-${SIGNAL_CLI_VERSION}.zip signal-cli-${SIGNAL_CLI_VERSION}/* \
|
||||
&& unzip -q /tmp/signal-cli-${SIGNAL_CLI_VERSION}.zip -d /opt \
|
||||
&& rm -f /tmp/signal-cli-${SIGNAL_CLI_VERSION}.zip
|
||||
@ -159,7 +167,7 @@ RUN cd /tmp/signal-cli-rest-api-src && go build -buildmode=plugin -o signal-cli-
|
||||
# is fixed we use the standard ubuntu image
|
||||
#FROM eclipse-temurin:21-jre-jammy
|
||||
|
||||
FROM ubuntu:jammy
|
||||
FROM ubuntu:noble
|
||||
|
||||
ENV GIN_MODE=release
|
||||
|
||||
@ -173,7 +181,7 @@ ENV SIGNAL_CLI_REST_API_PLUGIN_SHARED_OBJ_DIR=/usr/bin/
|
||||
|
||||
RUN dpkg-reconfigure debconf --frontend=noninteractive \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends util-linux supervisor netcat openjdk-21-jre curl locales \
|
||||
&& apt-get install -y --no-install-recommends util-linux supervisor netcat-openbsd openjdk-25-jre curl locales \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=buildcontainer /tmp/signal-cli-rest-api-src/signal-cli-rest-api /usr/bin/signal-cli-rest-api
|
||||
@ -184,7 +192,8 @@ COPY --from=buildcontainer /tmp/signal-cli-rest-api-src/signal-cli-rest-api_plug
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
|
||||
RUN groupadd -g 1000 signal-api \
|
||||
RUN userdel -r ubuntu 2>/dev/null || true \
|
||||
&& groupadd -f -g 1000 signal-api \
|
||||
&& useradd --no-log-init -M -d /home -s /bin/bash -u 1000 -g 1000 signal-api \
|
||||
&& ln -s /opt/signal-cli-${SIGNAL_CLI_VERSION}/bin/signal-cli /usr/bin/signal-cli \
|
||||
&& ln -s /opt/signal-cli-${SIGNAL_CLI_VERSION}/bin/signal-cli-native /usr/bin/signal-cli-native \
|
||||
|
||||
@ -1,23 +1,22 @@
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index f51d9f1c..6357f590 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -55,6 +55,7 @@ dependencies {
|
||||
@@ -89,6 +89,7 @@ dependencies {
|
||||
implementation(libs.slf4j.jul)
|
||||
implementation(libs.logback)
|
||||
implementation(libs.zxing)
|
||||
implementation(project(":libsignal-cli"))
|
||||
+ implementation(files("/tmp/libsignal-client.jar"))
|
||||
}
|
||||
|
||||
configurations {
|
||||
@@ -63,6 +64,10 @@ configurations {
|
||||
|
||||
@@ -97,6 +98,10 @@ configurations {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+configurations.all {
|
||||
+ exclude(group = "org.signal", module = "libsignal-client")
|
||||
+}
|
||||
+
|
||||
|
||||
|
||||
tasks.withType<AbstractArchiveTask>().configureEach {
|
||||
isPreserveFileTimestamps = false
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user