java and minecraft on alpine linux
alpine linux is a fantastic little linux distribution based on the musl libc
implementation. the only "problem" that i have had with it is with pre-compiled
software that depends on glibc. one such example of that is java's jre. in this
little chain of thought i'm going to explain how i got java and the minecraft
server working with alpine linux.
first off, we're kind of lucky. the 64 bit version of alpine uses /lib for it's
libraries instead of /lib64. this allows us to easily borrow libraries from any
distribution that builds packages based on /lib64 without conflicting with our
so let's try to get java working. in this example we'll use a virtualbox vm
running slackware to do our research / library donation. once you have slackware
installed and running, fetch a recent copy of the java jre and extract it to
the vm's home directory.
the first step you might be thinking is to start running ldd on every binary in
the "jre1.8.0_161/bin" folder. then you'll copy the missing libraries over to your
alpine linux machine's new /lib64 folder. one by one you'll copy them and try
to run the minecraft server until it works. now, suddenly it's running, it goes
through it's initial setup, building the world etc. neat! but... you'll notice
you aren't able to connect! are the mojang verification servers down AGAIN??
nope, you're still missing libraries. so let's try going about this a different
in our next attempt, we'll run the minecraft server on our slackware vm. since
we know it has all the libraries java needs, it should load perfectly the first
time. next, in a separate terminal, let's use 'ps ax' to find the PID of the
currently running java process and then run
'lsof -F -p PID_HERE | grep lib64'
to list the files java currently has open. would ya look at that! all those
.so files from /lib64 that we totally missed! better get to copying them to
your alpine machine!
after you copy those files over (and created the symlinks that point to them..
you should study the lib64 folder a bit) the minecraft server works perfectly
and is very stable.
hopefully this little writeup was useful, or at least interesting. and if it
helped you get your minecraft server up and running, awesome!
(c) 2018 Alexander Grotewohl