netty-tcnative: Unable to use pre-built binaries on alpine linux
I am trying to use the netty-tcnative libraries for my grpc application in a docker container. When i use the prebuilt binary I get the following error:
Inconsistency detected by ld.so: dl-lookup.c: 128: check_match: Assertion `version->filename == ((void *)0) || ! _dl_name_match_p (version->filename, map)' failed!
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Reactions: 6
- Comments: 29 (11 by maintainers)
I would like to express strong interest in an alpine-version available from maven. Its just to cumbersome building it yourself if you do wanna use alpine images
I don’t think glibc is even an issue now. I think you just need
apk update && apk add libc6-compat. That’s what it seemed like when I tested for grpc: https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty@pires based on your work I have this automated via gradle. Thanks! @normanmaurer If you folks decide to support this some day, we’ve now automated it down to a single command. It’s written in gradle, though. I did not feel like writing such an involved thing in maven.
The built native jar as desribed above, under openssl-dynamic/target/netty-tcnative-<version>-linux-x86_64.jar , works for me, if I use the following, in a runtime image based FROM
jeanblanchard/java:jdk-8:It’s very important to change the base image only if you know what you are doing otherwise you might end up not finding libuuid during tcnative load.
Hope this helps. Hopefully I get the time to provide this in a matter more automated than github comments someday.
Cheers, Dimitar