c0b / docker-elixir

Official Docker image for Elixir :whale: :turtle: :rocket:

Home Page:http://elixir-lang.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

clarify that wx widgets only work on debian/ubuntu

steffkes opened this issue · comments

i've got an OOM from one of our application (basically for the first time, ever) which led me to erlang's crashdump viewer - running it complained about could not find wxe_driver.so in $path ...

which i was wondering about because https://github.com/c0b/docker-elixir/wiki/use-observer suggests that "everything is ready to go" and i had absolutely no luck getting it to work.

only after comparing https://github.com/erlang/docker-erlang-otp/blob/master/21/alpine/Dockerfile to https://github.com/erlang/docker-erlang-otp/blob/master/21/Dockerfile i've realized we're running alpine based images which don't have/get the wx libraries -- switching to debian/ubuntu based images worked.

maybe we can/should add a quick note for guys like me that are not expecting this? i mean, in hindsight probably not that surprising that (supposedly small) alpine builds don't contain such debugging/development dependencies .. just not that obvious if you're deep down the rabbit hole of debugging an erlang crashdump for the first time :) wdyt @c0b ?

commented

Sorry for that wasn't clear before; I've just added a header banner there;

Note: for image size and many other considerations, the wx widgets dependencies are only built into the developer friendly version: the default series like elixir:1.8 elixir:1.7 which are based on a full-featured debian based envrionment; do not expect observer to work in slim or alpine series.

https://github.com/c0b/docker-elixir/wiki/use-observer

Generally, the observer is more in-use on a developer environment (more probably on your laptop), and alpine images are for-use for production, usually nobody would expect to launch an observer from a production environment; On the other hand, if configured correctly, you may launch the observer from your developer environment and connect to a remote Erlang node in production system, to observe all Erlang processes in production system.

yeah, absolutely - as i've said (or at least, tried to) .. it should have been obvious, but for whatever reason it wasn't to me when i was reading the wiki page :o

thanks for the additional banner though, that will definitely help me whenever i'm going to read to page somewhere in the future ;)