parent
72b6f05c8d
commit
7bab68fe31
@ -0,0 +1,58 @@ |
|||||||
|
ARG ATHEME_UID=10000 |
||||||
|
ARG ATHEME_VERSION=7.2.10-r2 |
||||||
|
ARG BUILD_CONTRIB_MODULES= |
||||||
|
|
||||||
|
FROM alpine:latest AS builder |
||||||
|
ARG ATHEME_VERSION |
||||||
|
ARG BUILD_CONTRIB_MODULES |
||||||
|
ARG MAKE_NUM_JOBS |
||||||
|
|
||||||
|
# Install build-deps and runtime deps |
||||||
|
RUN apk add --no-cache \ |
||||||
|
build-base \ |
||||||
|
pkgconf \ |
||||||
|
openssl-dev \ |
||||||
|
git |
||||||
|
|
||||||
|
# libexecinfo is used by contrib/gen_echoserver |
||||||
|
RUN test -z "$BUILD_CONTRIB_MODULES" || apk add --no-cache libexecinfo-dev |
||||||
|
|
||||||
|
# Checkout from Git - we need to manually bump the libmowgli snapshot to fix compilation against musl |
||||||
|
# This will be fixed when 7.3 releases |
||||||
|
RUN git clone \ |
||||||
|
-b v${ATHEME_VERSION} \ |
||||||
|
--depth=1 \ |
||||||
|
--recursive \ |
||||||
|
https://github.com/atheme/atheme.git /atheme-src |
||||||
|
|
||||||
|
WORKDIR /atheme-src |
||||||
|
|
||||||
|
RUN cd libmowgli-2 && \ |
||||||
|
git pull origin master |
||||||
|
|
||||||
|
# Configure and build |
||||||
|
RUN ./configure \ |
||||||
|
--prefix=/srv/atheme $(test -z "$BUILD_CONTRIB_MODULES" || echo --enable-contrib) && \ |
||||||
|
make -j${MAKE_NUM_JOBS:-$(nproc)} && \ |
||||||
|
make install |
||||||
|
|
||||||
|
|
||||||
|
FROM alpine:latest |
||||||
|
ARG ATHEME_UID |
||||||
|
ARG BUILD_CONTRIB_MODULES |
||||||
|
|
||||||
|
# openssl: used by some hashing and SASL algorithms |
||||||
|
# msmtp: used to route mail to an external mail server |
||||||
|
RUN apk add --no-cache \ |
||||||
|
openssl \ |
||||||
|
msmtp \ |
||||||
|
ca-certificates \ |
||||||
|
&& (test -z "$BUILD_CONTRIB_MODULES" || apk add --no-cache libexecinfo) |
||||||
|
|
||||||
|
RUN adduser -D -u $ATHEME_UID atheme |
||||||
|
|
||||||
|
COPY --from=builder --chown=atheme /srv/atheme /srv/atheme |
||||||
|
|
||||||
|
COPY root/ / |
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"] |
@ -0,0 +1,34 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
DATADIR=/srv/data/etc |
||||||
|
|
||||||
|
mkdir -p "$DATADIR" |
||||||
|
|
||||||
|
chown atheme:atheme -R "$DATADIR" |
||||||
|
|
||||||
|
if [ ! -e $DATADIR/atheme.conf ]; then |
||||||
|
echo "Configuration file not found. Generating it..." |
||||||
|
cp /srv/atheme/etc/atheme.conf.example $DATADIR/atheme.conf |
||||||
|
fi |
||||||
|
|
||||||
|
if ! test -w "$DATADIR/"; then |
||||||
|
echo "ERROR: $DATADIR must be mounted to a directory writable by UID $ATHEME_UID" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
DBPATH="$DATADIR/services.db" |
||||||
|
if test -f "$DBPATH" && ! test -r "$DBPATH"; then |
||||||
|
echo "ERROR: $DBPATH must be readable by UID $ATHEME_UID" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
TMPPATH="$DATADIR/services.db.new" |
||||||
|
if test -f "$TMPPATH" && ! test -w "$TMPPATH"; then |
||||||
|
echo "ERROR: $TMPPATH must either not exist or be writable by UID $ATHEME_UID" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
rm -f /srv/atheme/var/atheme.pid |
||||||
|
su atheme -c "/srv/atheme/bin/atheme-services \ |
||||||
|
-c $DATADIR/atheme.conf \ |
||||||
|
-n" |
@ -1,20 +1,20 @@ |
|||||||
#!/bin/sh |
#!/bin/sh |
||||||
|
|
||||||
mkdir -p /srv/config /srv/logs |
mkdir -p /srv/data/etc /srv/data/logs |
||||||
|
|
||||||
chown ircd:ircd -R /srv/config /srv/logs |
chown solanum:solanum -R /srv/data |
||||||
|
|
||||||
if [ ! -e /srv/config/ircd.conf ]; then |
if [ ! -e /srv/data/etc/ircd.conf ]; then |
||||||
echo "Configuration file not found. Generating it..." |
echo "Configuration file not found. Generating it..." |
||||||
cp /srv/ircd/etc/ircd.conf.example /srv/config/ircd.conf |
cp /srv/solanum/etc/ircd.conf.example /srv/data/etc/ircd.conf |
||||||
fi |
fi |
||||||
|
|
||||||
if [ ! -e /srv/config/ircd.motd ]; then |
if [ ! -e /srv/data/etc/ircd.motd ]; then |
||||||
echo "MOTD file not found. Generating it..." |
echo "MOTD file not found. Generating it..." |
||||||
cp /srv/ircd/etc/ircd.motd /srv/config/ircd.motd |
cp /srv/solanum/etc/ircd.motd /srv/data/etc/ircd.motd |
||||||
fi |
fi |
||||||
|
|
||||||
su ircd -c "/srv/ircd/bin/solanum \ |
su solanum -c "/srv/solanum/bin/solanum \ |
||||||
-configfile /srv/config/ircd.conf \ |
-configfile /srv/data/etc/ircd.conf \ |
||||||
-logfile /srv/logs/ircd.logs \ |
-logfile /srv/data/logs/ircd.logs \ |
||||||
-foreground" |
-foreground" |
||||||
|
Loading…
Reference in new issue