sql >> Base de Datos >  >> NoSQL >> Redis

Gradle construir obras locales. En el contenedor docker no lo hace. ¿POR QUÉ?

La biblioteca nativa de Java Snappy (cargada a través de JNI) se compila contra glibc. Alpine Linux (en lo que se basa su contenedor) usa musl libc que es compatible con la fuente pero no con el binario (básicamente significa que si compila la biblioteca nativa contra musl funcionará, pero si se compila contra glibc no funcionará con almizcle).

Tienes tres opciones:

  1. Instala java-snappy-native (que contiene una biblioteca nativa construida para musl) en su contenedor Alpine y configure org.xerial.snappy.use.systemlib=true (le dice a la biblioteca de Java que use la biblioteca nativa preinstalada). Actualmente también necesitas instalar snappy ya que alguien no pudo agregar esa dependencia al paquete anterior.
  2. Usar un contenedor base con glibc
  3. Instale glibc en su contenedor Alpine (realmente no recomendado)