1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
# ngIRCd -- The Next Generation IRC Daemon
# Copyright (c)2001-2024 Alexander Barton (alex@barton.de) and Contributors
# Build Container
FROM docker.io/library/debian:stable-slim AS build
USER root
RUN apt-get -y update \
&& apt-get -y install --no-install-recommends \
autoconf \
automake \
build-essential \
expect \
gawk \
git \
libgnutls28-dev \
libident-dev \
libpam0g-dev \
openssl \
pkg-config \
telnet \
zlib1g-dev \
&& mkdir -p /usr/local/src/ngircd /opt/ngircd \
&& chown bin:bin /usr/local/src/ngircd /opt/ngircd
WORKDIR /usr/local/src/ngircd
COPY . /usr/local/src/ngircd
RUN chown -R bin /usr/local/src/ngircd
USER bin
RUN ./autogen.sh --prefix=/opt/ngircd \
--with-gnutls \
--with-iconv \
--with-ident \
--with-pam \
&& make all \
&& make -C src/ngircd check \
&& make install \
&& printf \
"# ngircd.conf\n\n[Global]\nServerGID=irc\nServerUID=irc\n\n[Options]\nIdent=no\nPAM=no\n\n[SSL]\nCAFile=/etc/ssl/certs/ca-certificates.crt\n" \
>/opt/ngircd/etc/ngircd.conf \
&& chmod -R a+rX /opt/ngircd
# Run container
FROM docker.io/library/debian:stable-slim
USER root
RUN apt-get -y update \
&& apt-get -y install --no-install-recommends --no-install-suggests \
ca-certificates \
catatonit \
libgnutls30 \
libident \
libpam0g \
libwrap0 \
zlib1g \
&& apt-get -y clean \
&& rm -rf /var/cache/debconf/*-old /var/lib/apt/lists/*
COPY --from=build /opt/ngircd /opt/ngircd
USER irc
ENTRYPOINT [ "/usr/bin/catatonit", "--", "/opt/ngircd/sbin/ngircd", "--nodaemon" ]
EXPOSE 6667 6697
HEALTHCHECK --interval=30s --timeout=5s --retries=1 --start-period=5s \
CMD [ "/usr/bin/grep", "-F", ":1A0B ", "/proc/net/tcp" ]
|