diff --git a/Dockerfile b/Dockerfile index 4fd5adf..a30cb45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,44 @@ -FROM debian:unstable-slim as builder_source +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 \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /opt -RUN 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 \ + && 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 + && 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 -FROM builder_source AS builder_binary -COPY --from=builder_source /app /app -WORKDIR /app -RUN useradd unrealircd \ - && chown unrealircd:unrealircd -R /app - USER unrealircd CMD /app/unrealircd start \ && until ! [ -f /app/data/unrealircd.pid ]; do sleep 60; done + +EXPOSE 6900 6697 6667