FROM code.pztrn.name/containers/mirror/alpine:3.24.1 AS build

ENV PERL_MM_USE_DEFAULT=1
RUN apk add --no-cache \
    bison \
    build-base \
    curl \
    gawk \
    gd-dev \
    gnupg \
    libgd \
    krb5-dev \
    openssl \
    openssl-dev \
    perl \
    perl-dev \
    perl-utils \
    python3 \
    python3-dev \
    s6 \
    shadow \
    sqlite-dev \
    tar \
    zlib-dev && \
    cpan -T GD MIME::Parser && \
    rm -rf /root/.cpan


ARG VERSION=2.7.4
RUN curl -sL https://github.com/InterNetNews/inn/releases/download/${VERSION}/inn-${VERSION}.tar.gz | tar xz

WORKDIR /inn-${VERSION}
RUN ./configure --prefix=/inn2 --with-zlib --with-openssl --with-sqlite --with-krb5 --with-perl --with-python && \
    make && \
    sed -i 's/#domain:/domain: news.localhost/' site/inn.conf && \
    make install

RUN sed -i 's/#\(tlscapath:\)/\1/' /inn2/etc/inn.conf && \
    sed -i 's/#\(tlscertfile:\)/\1/' /inn2/etc/inn.conf && \
    sed -i 's/#\(tlskeyfile:\)/\1/' /inn2/etc/inn.conf && \
    mv /inn2/etc /inn2/etc-default && \
    mv /inn2/db /inn2/db-default && \
    mv /inn2/spool /inn2/spool-default

COPY configuration /etc
COPY start-innd.sh /start-innd

RUN groupmod -g 600 news && usermod -u 600 -g 600 -d /inn2 news && chown -R news:news /inn2 && chown -R news:news /etc/s6

WORKDIR /inn2
ENV PATH=/inn2/bin:$PATH
ENV PERL_MM_USE_DEFAULT=1
USER news
EXPOSE 119
EXPOSE 563
VOLUME [ "/inn2/db", "/inn2/spool", "/inn2/log" ]

CMD ["/usr/bin/s6-svscan", "/etc/s6"]
