1
0
mirror of https://github.com/osmarks/ngircd.git synced 2025-09-12 23:36:00 +00:00

Add a Dockerfile and documentation to the project

This commit is contained in:
Alexander Barton
2024-02-09 22:58:44 +01:00
parent c0b8b94550
commit 934f3a0d88
7 changed files with 151 additions and 0 deletions

62
contrib/Dockerfile Normal file
View File

@@ -0,0 +1,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" ]

View File

@@ -14,6 +14,7 @@ SUBDIRS = Debian
EXTRA_DIST = README.md \
de.barton.ngircd.metainfo.xml \
de.barton.ngircd.plist \
Dockerfile \
ngindent.sh \
ngircd-bsd.sh \
ngIRCd-Logo.gif \

View File

@@ -9,6 +9,9 @@ This `contrib/` directory contains the following sub-folders and files:
- `de.barton.ngircd.plist[.tmpl]`: launchd(8) property list file.
- `Dockerfile`: Container definition file, for Docker or Podman for example.
More information can be found in the `doc/Container.md` file.
- `ngindent.sh`: Script to indent the code of ngIRCd in the "standard way".
- `ngircd-bsd.sh`: Start/stop script for FreeBSD.