Refactor dockerfile to minimize image size
This commit is contained in:
parent
75c480a3e4
commit
53b654d123
49
Dockerfile
49
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
|
||||
|
Reference in New Issue
Block a user