Este grupo de trabajo ha estado largas horas buscando la solución a tu interrogante, te brindamos la solución por esto nuestro objetivo es servirte de mucha ayuda.
Solución:
En mi caso, la instalación del libc6-compat faltante no funcionó. La aplicación aún se lanza java.lang.UnsatisfiedLinkError
.
Luego encuentro en la ventana acoplable, /lib64/ld-linux-x86-64.so.2
existe y es un enlace a /lib/libc.musl-x86_64.so.1
pero /lib
solo contiene ld-musl-x86_64.so.1
no ld-linux-x86-64.so.2
.
Así que agrego un archivo llamado ld-linux-x86-64.so.2
vinculado a ld-musl-x86_64.so.1
en /lib
dir y resolver el problema.
Dockerfile que uso:
FROM openjdk:8-jre-alpine
COPY entrypoint.sh /entrypoint.sh
RUN apk update &&
apk add --no-cache libc6-compat &&
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 &&
mkdir /app &&
chmod a+x /entrypoint.sh
COPY build/libs/*.jar /app
ENTRYPOINT ["/entrypoint.sh"]
En conclusión:
RUN apk update && apk add --no-cache libc6-compat
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
El mensaje de error indica que *libsnappyjava.so no puede encontrar ld-linux-x86-64.so.2. Este es un cargador dinámico de glibc, mientras que Alpine image no se ejecuta con glibc. Puede intentar que funcione instalando el paquete libc6-compat en su Dockerfile, por ejemplo:
RUN apk update && apk add --no-cache libc6-compat
Hay dos soluciones de este problema:
-
Puede usar alguna otra imagen base con preinstalado
snappy-java
liberación Por ejemploopenjdk:8-jre-slim
funciona bien para mi -
Y la otra solución es seguir usando
openjdk:8-jdk-alpine
imagen como base uno, pero luego instalesnappy-java
lib manualmente:
FROM openjdk:8-jdk-alpine
RUN apk update && apk add --no-cache gcompat
...