webbukkit / dynmap

A set of Minecraft mods that provide a real time web-based map system for various Minecraft server implementations.
https://www.reddit.com/r/Dynmap/
Apache License 2.0
2.06k stars 420 forks source link

dynmap on headless 11.6.5 papermc - no tiles rendered, no error messages #3314

Closed smeenz closed 3 years ago

smeenz commented 3 years ago

Issue Description:

I've deployed papermc using this docker image https://hub.docker.com/r/phyremaster/papermc. The server is based on alpine linux, is headless, and minecraft is running nogui. Being a docker image, it's a very minimal linux installation.

I've installed the latest beta dynmap (the latest stable says it is incompatible), and can not get any tiles to render at all. There are no error messages afaikt. The map is drawn, and I see my player icon (with the correct skin), but all tiles are black. Rendering seems to be running, but not actually doing anything

dynmap fullrender world [21:50:53 INFO]: Full render of world 'world' already active.

From what I've read, my guess is this could be a silent failure due to a lack of x11/graphics libraries on the server, but I've not been able to find any definitive list as to what libraries are required. The closest I found was someone who commented that they had to install x11 and other stuff, and that made it work.

FedUpWith-Tech commented 3 years ago

Closing due to age, if this is still relevant please reply and i will reopen

Opisek commented 1 year ago

I can confirm that this issue still exists. It's specific to dynmap on alpine. It appears that dynmap simply doesn't render anything on alpine.

Opisek commented 1 year ago

@FedUpWith-Tech reopen please?

mikeprimm commented 1 year ago

Need to be sure the JVM you are running is also set to be a headless JVM: default JVM depends on X libraries for things like JPEG encoding/decoding. If Alpine lacks a headless JVM, this configuration will not be supportable.

mikeprimm commented 1 year ago

e.g. https://pkgs.alpinelinux.org/package/edge/community/x86_64/openjdk17-jre-headless

mikeprimm commented 1 year ago

Looking at that docker image, it is incorrectly configured for headless - the JRE included is NOT the headless one...

https://github.com/Phyremaster/papermc-docker/blob/master/Dockerfile#L15

Opisek commented 1 year ago

Here's my docker file. It experiences the same thing described and uses headless JRE. https://github.com/Opisek/mc-paper-docker/blob/master/Dockerfile

mikeprimm commented 1 year ago

Not sure what to tell ya - we depend upon the ImageIO component of the JRE for PNG and JPEG encode/decode, and if that isn't working in your JRE setup (as generally happens when a headless environment is misconfigured), there isn't anything we can do about it...

mikeprimm commented 1 year ago

(this specific issue is mortibund: the dynmap version listed is massively obsolete, so all the details are worthless - this can be discussed further in another issue, but we're honestly not going to debug someone's non-standard JVM setup - but do not expect this specific issue to be reopened.

Any reopen should be based on current DEVELOPMENT builds - https://dynmap.us/builds/dynmap/Dynmap-3.7-SNAPSHOT-spigot.jar )

Tommatheussen commented 11 months ago

I know this issue has been closed, but I wanted to add some information related to my environment: 1: I am running a PaperMC server on an Alpine container (inside Proxmox), some version info:

Dynmap did not want to render any tiles for our server, similar to what was listed in the initial report, players and spawn show, but not tiles, all black.

After a while, I installed the webp dependencies (as listed in the reddit post linked from the wiki) and switched dynmap configuration to use webp-95 as output format. This instantly started rendering tiles!

So, this makes me think that the headless Java JVM does not include the necessary OS dependencies to render the tiles in the default format? I know this is not your guys' call to fix, but perhaps add a note to the wiki to let people know they should try the webp format?

JurgenKuyper commented 11 months ago

as Mike already said, you need to use the jdk not the jre which you are now using, changing that should fix it too