Hello,
I’m trying to run a couchbase lite client built with the java sdk in a docker container.
Using debian based image
But getting the following error
Caused by: java.lang.Exception: java.lang.UnsatisfiedLinkError: /app/CouchbaseLiteTemp/f462ad0c1546153e8e5386311d346324/libLiteCore.so: libicuuc.so.71: cannot open shared object file: No such file or directory
at com.couchbase.lite.internal.NativeLibrary.loadLibrary(NativeLibrary.java:153) ~[couchbase-lite-java-3.2.3.jar!/:na]
… 50 common frames omitted
Caused by: java.lang.UnsatisfiedLinkError: /app/CouchbaseLiteTemp/f462ad0c1546153e8e5386311d346324/libLiteCore.so: libicuuc.so.71: cannot open shared object file: No such file or directory
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:321) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:187) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:129) ~[na:na]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2245) ~[na:na]
at java.base/java.lang.Runtime.load0(Runtime.java:767) ~[na:na]
at java.base/java.lang.System.load(System.java:1624) ~[na:na]
at com.couchbase.lite.internal.NativeLibrary.loadLibrary(NativeLibrary.java:151) ~[couchbase-lite-java-3.2.3.jar!/:na]
… 50 common frames omitted
Following is our dockerfile
---- Stage 1: Build JAR with Gradle (Java 21) ----
FROM gradle:8.9-jdk21 AS builder
WORKDIR /appCopy parent gradle files + wrapper (needed for build)
COPY settings.gradle ./
COPY gradle ./gradleCopy all modules
COPY . .
Build only your Spring Boot submodule jar (replace
app-module
with actual module name)RUN gradle :app:bootJar --no-daemon
---- Stage 2: Run the JAR (Java 21) ----
FROM bitnami/java:latest
WORKDIR /appInstall deps required by Couchbase Lite native libraries
RUN apt-get update && apt-get install -y
libicu-dev
libz1
libcurl4
&& rm -rf /var/lib/apt/lists/*#ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cblib/support/linux/x86_64/libicu/
#ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cblib/support/linux/x86_64/libz/
#ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cblib/support/linux/x86_64/libc++/#export ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu
Copy the generated jar from the submodule
COPY --from=builder /app/app/build/libs/*.jar app.jar
Run Spring Boot app
ENTRYPOINT [“java”, “-jar”, “app.jar”]
CMD [“tail”, “-f”, “/dev/null”]