atheme-docker/Dockerfile

54 lines
1.5 KiB
Docker
Raw Normal View History

2020-02-23 21:52:57 -08:00
ARG ATHEME_UID=10000
ARG ATHEME_VERSION=7.2.10-r2
ARG BUILD_CONTRIB_MODULES=
2020-02-23 21:52:57 -08:00
FROM alpine:latest AS builder
ARG ATHEME_VERSION
ARG BUILD_CONTRIB_MODULES
2020-02-23 21:52:57 -08:00
RUN mkdir /atheme-src
# Install build-deps and runtime deps
RUN apk add --no-cache \
2020-02-23 21:52:57 -08:00
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
2020-02-23 21:52:57 -08:00
# 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 https://github.com/atheme/atheme -b v${ATHEME_VERSION} --depth=1 atheme-src --recursive
RUN cd /atheme-src/libmowgli-2 && \
git pull origin master
2020-02-23 21:52:57 -08:00
# Configure and build
RUN cd /atheme-src && \
./configure --prefix=/atheme $(test -z "$BUILD_CONTRIB_MODULES" || echo --enable-contrib) && \
2020-02-23 21:52:57 -08:00
make -j$(nproc) && make install
FROM alpine:latest
ARG ATHEME_UID
ARG BUILD_CONTRIB_MODULES
2020-03-07 16:43:02 -08:00
# 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)
COPY --from=builder /atheme/ /atheme
# Add custom entrypoint to check that data dir is writable - Atheme does not check this by itself
RUN echo "$ATHEME_UID" > /.atheme_uid
COPY entrypoint.sh /
RUN adduser -D -h /atheme -u $ATHEME_UID atheme
2020-02-23 21:52:57 -08:00
RUN chown -R atheme /atheme
USER atheme
# Services config & DB
2020-02-23 21:52:57 -08:00
VOLUME /atheme/etc
ENTRYPOINT ["/entrypoint.sh"]