80 lines
3.0 KiB
Docker
80 lines
3.0 KiB
Docker
FROM debian:12
|
|
|
|
ENV GID 1234
|
|
ENV UID 1234
|
|
|
|
RUN DEBIAN_FRONTEND=noninteractive RUNLEVEL=1 apt-get update
|
|
RUN DEBIAN_FRONTEND=noninteractive RUNLEVEL=1 apt-get -y install build-essential libssl-dev autoconf automake flex libpcre3-dev byacc gawk git vim procps net-tools iputils-ping bind9-host
|
|
#libgeoip-dev libmaxminddb-dev
|
|
|
|
# Perl dependencies for iauthd.pl (commented out - using TypeScript version)
|
|
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install libpoe-perl libpoe-component-client-dns-perl libterm-readkey-perl libfile-slurp-perl libtime-duration-perl
|
|
|
|
# Node.js for iauthd-ts
|
|
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install nodejs npm
|
|
|
|
RUN mkdir -p /home/nefarious/nefarious2
|
|
RUN mkdir -p /home/nefarious/ircd
|
|
|
|
COPY . /home/nefarious/nefarious2
|
|
|
|
RUN groupadd -g ${GID} nefarious
|
|
RUN useradd -u ${UID} -g ${GID} nefarious
|
|
RUN chown -R nefarious:nefarious /home/nefarious
|
|
USER nefarious
|
|
|
|
WORKDIR /home/nefarious/nefarious2
|
|
|
|
#Build and install nefarious
|
|
# maxcon bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578038 - docker build limit seems different than docker run limit
|
|
#RUN ./configure --libdir=/home/nefarious/ircd --mandir=/home/nefarious/ircd --bindir=/home/nefarious/ircd \
|
|
|
|
# I cant get the maxminddb library to compile in at all in debian 12, give up on geoip for now
|
|
# --with-geoip=/usr --with-mmdb=/usr \
|
|
RUN ./configure --libdir=/home/nefarious/ircd --enable-debug --with-maxcon=4096
|
|
RUN make
|
|
RUN touch /home/nefarious/ircd/ircd.pem && make install && rm /home/nefarious/ircd/ircd.pem
|
|
|
|
# Build iauthd-ts
|
|
WORKDIR /home/nefarious/nefarious2/tools/iauthd-ts
|
|
RUN npm install && npm run build
|
|
|
|
# Copy iauthd-ts to ircd directory
|
|
RUN cp -r /home/nefarious/nefarious2/tools/iauthd-ts/dist /home/nefarious/ircd/iauthd-ts
|
|
RUN cp /home/nefarious/nefarious2/tools/iauthd-ts/package.json /home/nefarious/ircd/iauthd-ts/
|
|
WORKDIR /home/nefarious/ircd/iauthd-ts
|
|
RUN npm install --omit=dev
|
|
|
|
WORKDIR /home/nefarious/ircd
|
|
|
|
# Symlink ircd.log to stdout so docker logs captures it
|
|
RUN ln -sf /dev/stdout /home/nefarious/ircd/ircd.log
|
|
|
|
USER root
|
|
#Clean up build
|
|
RUN rm -rf /home/nefarious/nefarious2
|
|
RUN apt-get remove -y build-essential && apt-get autoremove -y
|
|
RUN apt-get clean
|
|
|
|
USER nefarious
|
|
|
|
COPY ./tools/docker/dockerentrypoint.sh /home/nefarious/dockerentrypoint.sh
|
|
COPY ./tools/linesync/gitsync.sh /home/nefarious/ircd/gitsync.sh
|
|
|
|
# Create wrapper script for iauthd.pl that runs the Node.js version
|
|
RUN printf '#!/bin/sh\nexec node /home/nefarious/ircd/iauthd-ts/index.js "$@"\n' > /home/nefarious/ircd/iauthd.pl && \
|
|
chmod +x /home/nefarious/ircd/iauthd.pl
|
|
|
|
#ircd-docker.conf includes the other config files
|
|
COPY tools/docker/ircd-docker.conf /home/nefarious/ircd/ircd-docker.conf
|
|
COPY tools/docker/base.conf-dist /home/nefarious/ircd/base.conf-dist
|
|
COPY tools/docker/ircd.conf /home/nefarious/ircd/ircd.conf
|
|
COPY tools/docker/linesync.conf /home/nefarious/ircd/linesync.conf
|
|
|
|
ENTRYPOINT ["/home/nefarious/dockerentrypoint.sh"]
|
|
|
|
CMD ["/home/nefarious/bin/ircd", "-n", "-x", "5", "-f", "ircd-docker.conf"]
|
|
|
|
|
|
|