Evolve: Can't run evolve on Alpine Linux
Love your software - I’ve been using Flyway for years and Evolve is perfect for my dotnet needs, thanks for sharing it with the world.
I am running Alpine Linux on my Docker containers and struggling to get Evolve to work due to dynamic linking problems. No problems on Fedora and other distros but Alpine uses muscl
instead of glibc
(see: https://stackoverflow.com/questions/37818831/is-there-a-best-practice-on-setting-up-glibc-on-docker-alpine-linux-base-image).
Here is the crux of the matter (after installing libc6-compat
package which fixed one of the dependency issues):
/var/www/tmp $ ./evolve sqlserver
Error relocating ./evolve: __register_atfork: symbol not found
Error relocating ./evolve: __rawmemchr: symbol not found
/var/www/tmp $ ldd ./evolve
/lib64/ld-linux-x86-64.so.2 (0x7fef9df20000)
libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fef9df20000)
librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7fef9df20000)
libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fef9df20000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7fef9da60000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fef9df20000)
Error relocating ./evolve: __register_atfork: symbol not found
Error relocating ./evolve: __rawmemchr: symbol not found
I’m not familiar enough with cross compiling to know what the best answer is, looking at your source code it’s all C# so not quite sure what’s going on.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 24 (12 by maintainers)
Let’s move to this issue #144 now 😃
Sorry haven’t had time to get together a nice set of working files for you yet but it’s on my urgent list!
When I will have something (soon hopefully) I will use you to be my beta tester for that part 😉 Thx again Oliver
No problem, the runtime is included in the “package”. It would be another asset available in the releases page. At least it is the idea ^^
See the Linux version for an example:
evolve_2.3.0_Linux-64bit.tar.gz
Ok, so it was a simple step to build it and it run’s on Alpine very nicely:
dotnet build 'Evolve.Cli' --configuration Release --runtime linux-musl-x64
Would be nice to have an official Alpine release from GitHub.