Add a biboumi Dockerfile
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
# This Dockerfile creates a docker image running biboumi
|
||||||
|
|
||||||
|
FROM docker.io/fedora:latest
|
||||||
|
|
||||||
|
RUN dnf --refresh install -y\
|
||||||
|
gcc-c++\
|
||||||
|
cmake\
|
||||||
|
make\
|
||||||
|
udns-devel\
|
||||||
|
sqlite-devel\
|
||||||
|
libuuid-devel\
|
||||||
|
expat-devel\
|
||||||
|
libidn-devel\
|
||||||
|
systemd-devel\
|
||||||
|
git\
|
||||||
|
python\
|
||||||
|
&& dnf clean all
|
||||||
|
|
||||||
|
# Install botan
|
||||||
|
RUN git clone https://github.com/randombit/botan.git && cd botan && ./configure.py --prefix=/usr && make -j8 && make install && ldconfig && rm -rf /botan
|
||||||
|
|
||||||
|
# Install litesql
|
||||||
|
RUN git clone git://git.louiz.org/litesql && mkdir /litesql/build && cd /litesql/build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr && make -j8 && cd /litesql/build && make install && ldconfig && rm -rf /litesql
|
||||||
|
|
||||||
|
# Install biboumi
|
||||||
|
RUN git clone git://git.louiz.org/biboumi && mkdir ./biboumi/build && cd ./biboumi/build &&\
|
||||||
|
cmake .. -DCMAKE_INSTALL_PREFIX=/usr\
|
||||||
|
-DCMAKE_BUILD_TYPE=Release\
|
||||||
|
-DWITH_BOTAN=1\
|
||||||
|
-DWITH_LITESQL=1\
|
||||||
|
-DWITH_LIBIDN=1\
|
||||||
|
-DWITH_SYSTEMD=1\
|
||||||
|
&& make -j8 && make install && rm -rf /biboumi
|
||||||
|
|
||||||
|
RUN useradd biboumi
|
||||||
|
|
||||||
|
COPY ./biboumi.cfg /etc/biboumi/biboumi.cfg
|
||||||
|
RUN chown -R biboumi:biboumi /etc/biboumi
|
||||||
|
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
RUN chmod 755 /entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
USER biboumi
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
Biboumi Docker Image
|
||||||
|
====================
|
||||||
|
|
||||||
|
Running
|
||||||
|
-------
|
||||||
|
|
||||||
|
This image does not embed any XMPP server. You need to have a running XMPP
|
||||||
|
server (as an other docker container for example) first.
|
||||||
|
|
||||||
|
Assuming you have a running `prosody
|
||||||
|
<https://hub.docker.com/r/prosody/prosody/>`_ container already running and
|
||||||
|
`properly configured
|
||||||
|
<https://prosody.im/doc/components#adding_an_external_component>`_ you can
|
||||||
|
use the following command to start your biboumi container.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker run --link prosody:xmpp \
|
||||||
|
-e BIBOUMI_PASSWORD=P4SSW0RD \
|
||||||
|
-e BIBOUMI_HOSTNAME=irc.example.com \
|
||||||
|
-e BIBOUMI_ADMIN=blabla \
|
||||||
|
biboumi
|
||||||
|
```
|
||||||
|
|
||||||
|
Variables
|
||||||
|
---------
|
||||||
|
|
||||||
|
The configuration file inside the image is a template that is completed when
|
||||||
|
the container is started, using the following environment variables:
|
||||||
|
|
||||||
|
* BIBOUMI_HOSTNAME: Sets the value of the *hostname* option.
|
||||||
|
* BIBOUMI_SECRET: Sets the value of the *password* option.
|
||||||
|
* BIBOUMI_ADMIN: Sets the value of the *admin* option.
|
||||||
|
|
||||||
|
All these variables are optional, but biboumi will probably fail to start if
|
||||||
|
the hostname and secret are missing.
|
||||||
|
|
||||||
|
You can also directly provide your own configuration file by mounting it
|
||||||
|
inside the container using the -v option:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker run --link prosody:xmpp \
|
||||||
|
-v $PWD/biboumi.cfg:/etc/biboumi/biboumi.cfg \
|
||||||
|
biboumi
|
||||||
|
```
|
||||||
|
|
||||||
|
Linking with the XMPP server
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
You can use the --link option to connect to any server, but it needs to be
|
||||||
|
called *xmpp*. For example, if you are using a container named ejabberd, you
|
||||||
|
would use the option *--link ejabberd:xmpp*.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
xmpp_server_ip=xmpp
|
||||||
|
port=5347
|
||||||
|
db_name=/var/lib/biboumi/biboumi.sqlite
|
||||||
|
hostname=BIBOUMI_HOSTNAME
|
||||||
|
password=BIBOUMI_PASSWORD
|
||||||
|
admin=BIBOUMI_ADMIN
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sed -i s/BIBOUMI_HOSTNAME/${BIBOUMI_HOSTNAME:-biboumi.localhost}/ /etc/biboumi/biboumi.cfg
|
||||||
|
sed -i s/BIBOUMI_ADMIN/${BIBOUMI_ADMIN:-}/ /etc/biboumi/biboumi.cfg
|
||||||
|
sed -i s/BIBOUMI_SECRET/${BIBOUMI_SECRET:-missing_secret}/ /etc/biboumi/biboumi.cfg
|
||||||
|
|
||||||
|
echo "Running biboumi with the following conf: "
|
||||||
|
cat /etc/biboumi/biboumi.cfg
|
||||||
|
|
||||||
|
/usr/bin/biboumi /etc/biboumi/biboumi.cfg
|
||||||
Reference in New Issue
Block a user