I built ejabberd 24.07
in Ubuntu 22.04.4 LTS successfully with rebar and those dependencies installed successfully :
sudo apt-get install build-essential automake autoconf libssl-dev libyaml-dev libz-dev libexpat1-dev imagemagick libgd-dev libwebp-dev libpng-dev libjpeg-dev
sudo ./autogen.sh
./configure --prefix=/home/ipple/ejabberd --enable-user=ipple --enable-pgsql --disable-debug --with-rebar=rebar
make clean;make;make install
BUT failed to start ejabberd:
@ejabberd_app:start/2:72 Failed to start ejabberd application: Invalid value of option modules->mod_http_upload->thumbnail: ejabberd is built without image converter support
--with-rebar=rebar
If possible, use rebar3 instead of rebar: --with-rebar=rebar3
, or quite simply don't set that option and let configure decide if it uses mix, rebar3 or rebar.
imagemagick
That is for generating CAPTCHAs, not related to image conversions.
I would say that you added the required dependencies and enabled the proper options, so I don't understand why it fails in your case.
I've written a Dockerfile that uses Ubuntu 22.04, installs the dependencies, downloads ejabberd, compiles it, enables the thumbnail option and starts ejabberd. It works correctly!
You can see what dependencies and options I used in this Dockerfile
, and compare with your installation:
FROM ubuntu:22.04
RUN apt-get -qq update
RUN apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \
libsqlite3-dev libwebp-dev libyaml-dev
RUN apt-get -qq install git build-essential automake autoconf
RUN apt-get -qq install erlang erlang-dev
RUN apt-get -qq install openssl libssl-dev
RUN git clone https://github.com/processone/ejabberd.git
WORKDIR /ejabberd
RUN addgroup ejabberd --gid 9000
RUN adduser --shell /bin/sh --disabled-login --gid 9000 ejabberd -u 9000
RUN mkdir -p /home/ejabberd/conf /home/ejabberd/database /home/ejabberd/logs /home/ejabberd/upload
RUN chown -R ejabberd:ejabberd /home/ejabberd
RUN ./autogen.sh
RUN ./configure --prefix=/home/ejabberd --enable-user=ejabberd --enable-pgsql --disable-debug
RUN sed -i 's|mod_http_upload:|mod_http_upload:\n thumbnail: true|' ejabberd.yml.example
RUN make
RUN make install-rel
ENV HOME=/home/ejabberd
USER ejabberd
VOLUME ["$HOME/var/lib/ejabberd","$HOME/etc/ejabberd","$HOME/var/log/ejabberd"]
EXPOSE 1883 4369-4399 5222 5269 5280 5443
ENTRYPOINT ["/home/ejabberd/sbin/ejabberdctl"]
CMD ["foreground"]
Then I create the container image:
podman build -t ejaubuntu .
Then start the image with ejabberd:
podman run -it -p 5222:5222 localhost/ejaubuntu live
ejabberd starts with an interactive erlang shell where I can view the start logs, no error with the option. In fact, I run this erlang function to verify that image conversion is supported:
...
2024-07-23 10:44:30.194644+00:00 [info] ejabberd 24.07.4 is started in the node ejabberd@localhost in 1.16s
(ejabberd@localhost)1> eimp:supported_formats().
[webp,jpeg,png,gif]
(ejabberd@localhost)2>