You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
Docker
42 lines
1.2 KiB
Docker
FROM alpine:3.7
|
|
ARG VERSION
|
|
ENV TERM=xterm \
|
|
LC_ALL=C.UTF-8 \
|
|
LANG=en_US.UTF-8 \
|
|
LANGUAGE=en_US.UTF-8 \
|
|
REPLACE_OS_VARS=true \
|
|
HOME=/home/ejabberd \
|
|
VERSION=${VERSION:-latest} \
|
|
ARCHIVE=ejabberd-${VERSION:-latest}.tar.gz
|
|
LABEL maintainer="ProcessOne <contact@process-one.net>" \
|
|
product="Ejabberd Community Edition" \
|
|
version=$VERSION
|
|
|
|
# Create directory structure and user for ejabberd
|
|
RUN addgroup ejabberd -g 9000 && adduser -s /bin/sh -D -G ejabberd ejabberd -u 9000 \
|
|
&& mkdir -p /home/ejabberd/config /home/ejabberd/db /home/ejabberd/log \
|
|
&& chown -R ejabberd:ejabberd /home/ejabberd
|
|
|
|
# Install required dependencies
|
|
RUN apk upgrade --update musl \
|
|
&& apk add bash libstdc++ ncurses-libs openssl expat yaml zlib sqlite curl ca-certificates \
|
|
&& rm -rf /var/cache/apk/* \
|
|
&& update-ca-certificates
|
|
|
|
# Install ejabberd
|
|
ADD $ARCHIVE $HOME
|
|
COPY ejabberd-api $HOME/bin/
|
|
COPY ejabberdctl $HOME/bin/
|
|
COPY config/* $HOME/config/
|
|
RUN chown ejabberd:ejabberd $HOME/config/*
|
|
COPY docker-entrypoint.sh /
|
|
|
|
# Setup runtime environment
|
|
USER ejabberd
|
|
WORKDIR $HOME
|
|
VOLUME ["$HOME/db","$HOME/config","$HOME/log"]
|
|
EXPOSE 5222 5269 5280
|
|
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
CMD ["ejabberd"]
|