-
-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to use pre-built binaries on alpine linux #111
Comments
we release versions build on centos and debian. I guess you will need to build it by your own for alpine. |
Assuming an alpine docker image which has an oracle jdk 8 installed, and netty-tcnative available under /opt/data/netty-tcnative (perhaps through a shared volume in the host, if you don't want to bother installing git on the alpine image), here is a setup which let me build netty-tcnative successfully:
, and then
@ankurcha and anyone else interested, I will let you know if the end result actually works. We use netty directly though, no grpc involved in the test. |
The built native jar as desribed above, under openssl-dynamic/target/netty-tcnative--linux-x86_64.jar , works for me, if I use the following, in a runtime image based FROM
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 |
This issue has Fork17 milestone assigned, does it mean it is fixed in Fork17? I can't find the proper alpine linux jar in maven for this version... Building is a pretty complex process, and it seems alpine is gaining a lot of momentum in docker containers. It would be really great if the binaries were built by default. |
this issue has not been resolved ... as of now we don't publish artifacts built from alpine. |
netty-tcnative-1.1.33.Fork15-linux-x86_64_alpine.jar.zip Here's the result of the build procedure I described above, for fork15, if you just wanna kick the tires. This is to be used in conjunction with 4.1.0.CR5 I could try automating this via gradle and docker some time after Jun 27. Would netty be interested to host this in a netty github repo, and publish to maven with the netty coordinates? (It's not required to have the correct coordinates for this to work, NativeLibraryLoader will find it anyways) |
Thanks a lot for the effort @dimitarg. For now I'll have to stick to a more standard glibc-based docker image, but I'm definitely interested in trying to run my components with alpine again when tcnative binaries are part of "official" build/publish process for netty-tcnative. |
@dimitarg thanks to your work I've automated the build of binaries for Alpine with Docker. |
@pires based on your work I have this automated via gradle. Thanks! |
Thanks @dimitarg and @pires ... This looks great! @normanmaurer @trustin @Scottmitch perhaps we should resume the discussion of switching gradle? The simplicity of this configuration is in pretty stark contrast to the hackery required to make tcnative build in Maven. I think it's pretty clear at this point that the complexity of this project isn't well suited for Maven. |
+1 for switching to Gradle due to its customizability and speed. |
@pires do you still publish the built versions somewhere? Didn't not managed to compile it entirely tho. |
gyndav yes https://github.com/pires/netty-tcnative-alpine/releases 2.0.6 is the latest but one can easily change that. |
Personally, the overhead of maintaining a tcnative build is a net negative compared to just sticking to larger docker images. But when I look at the philosophies of Apline and Netty I'm surprised there are no official binaries - Alpine has taken off in containers just like Netty has, so official (and thus trustworthy) support seems like a really good fit. With easy building with docker, what's the reasoning for not publishing builds? |
@anuraaga just because it makes the release-overhead even bigger.... Once we have something in a docker file we can do a followup investigation if we want to publish something or not tho. |
@normanmaurer why docker-compose instead of multi-stage builds? |
I guess I am just used to it
… Am 03.06.2018 um 11:52 schrieb Paulo Pires ***@***.***>:
@normanmaurer why docker-compose instead of multi-stage builds?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
I would like to express strong interest in an alpine-version available from maven. |
Are there any other issues besides glibc? So if we manually install glibc on Alpine it'll still work? |
I don't think glibc is even an issue now. I think you just need |
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!
The text was updated successfully, but these errors were encountered: