45 lines
1.6 KiB
Docker
45 lines
1.6 KiB
Docker
FROM debian:unstable-slim as base
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
&& apt-get install -y git build-essential pkg-config libssl-dev libpcre2-dev libargon2-0-dev libsodium-dev libc-ares-dev libcurl4-openssl-dev \
|
|
&& mkdir /opt/unrealircd \
|
|
&& cd /opt/unrealircd \
|
|
&& git clone https://github.com/unrealircd/unrealircd.git --depth 1 . \
|
|
&& ./configure \
|
|
--with-showlistmodes \
|
|
--enable-ssl \
|
|
--with-bindir=/app/bin \
|
|
--with-datadir=/app/data \
|
|
--with-pidfile=/app/data/unrealircd.pid \
|
|
--with-confdir=/app/conf \
|
|
--with-modulesdir=/app/modules \
|
|
--with-logdir=/app/logs \
|
|
--with-cachedir=/app/cache \
|
|
--with-docdir=/app/doc \
|
|
--with-tmpdir=/app/tmp \
|
|
--with-privatelibdir=/app/lib \
|
|
--with-scriptdir=/app \
|
|
--with-nick-history=2000 \
|
|
--with-permissions=0600 \
|
|
--enable-dynamic-linking \
|
|
&& make -j4 \
|
|
&& make install \
|
|
&& rm /app/source \
|
|
&& cp /app/conf/examples/example.conf /app/conf/unrealircd.conf \
|
|
&& rm -rf /opt/unrealircd \
|
|
&& cd /app \
|
|
&& useradd unrealircd \
|
|
&& chown unrealircd:unrealircd -R /app \
|
|
&& ldd /app/bin/unrealircd | tr -s '[:blank:]' '\n' | grep '^/' | xargs -I % sh -c 'mkdir -p $(dirname /app/deps%); cp % /app/deps%;' \
|
|
&& apt purge --yes git build-essential pkg-config libssl-dev libpcre2-dev libargon2-0-dev libsodium-dev libc-ares-dev libcurl4-openssl-dev \
|
|
&& apt autoremove --yes --purge \
|
|
&& cp -r /app/deps/* / \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
USER unrealircd
|
|
|
|
CMD /app/unrealircd start \
|
|
&& until ! [ -f /app/data/unrealircd.pid ]; do sleep 60; done
|
|
|
|
EXPOSE 6900 6697 6667
|