Merge branch 'master' into enable_odbc

pull/51/head
Mickaël Rémond 4 years ago committed by GitHub
commit 158981e719
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3,7 +3,7 @@ ARG VERSION
ENV VERSION=${VERSION:-latest} \
MIX_ENV=prod
LABEL maintainer="ProcessOne <contact@process-one.net>" \
product="Ejabberd Community Server builder"
product="Ejabberd Community Server builder"
# Get ejabberd sources, dependencies, configuration
RUN git clone https://github.com/processone/ejabberd.git
@ -11,22 +11,22 @@ WORKDIR /ejabberd
COPY vars.config .
COPY rel/*exs rel/
RUN git checkout ${VERSION/latest/HEAD} \
&& mix deps.get \
&& (cd deps/eimp; ./configure)
&& mix deps.get \
&& (cd deps/eimp; ./configure)
# Compile
RUN mix do compile, distillery.init, distillery.release --env=prod
# Prepare runtime environment
RUN mkdir runtime \
&& tar -C runtime -zxf _build/prod/rel/ejabberd/releases/*/ejabberd.tar.gz \
&& cd runtime \
&& cp releases/*/start.boot bin \
&& echo 'beam_lib:strip_files(filelib:wildcard("lib/*/ebin/*beam")), init:stop().' | erts*/bin/erl -boot start_clean >/dev/null \
&& mv erts*/bin/* bin \
&& rm -rf releases erts* bin/*src bin/dialyzer bin/typer \
&& rm bin/ejabberd bin/ejabberd.bat \
&& cp -r /ejabberd/sql lib/ejabberd-*/priv
&& tar -C runtime -zxf _build/prod/rel/ejabberd/releases/*/ejabberd.tar.gz \
&& cd runtime \
&& cp releases/*/start.boot bin \
&& echo 'beam_lib:strip_files(filelib:wildcard("lib/*/ebin/*beam")), init:stop().' | erts*/bin/erl -boot start_clean >/dev/null \
&& mv erts*/bin/* bin \
&& rm -rf releases erts* bin/*src bin/dialyzer bin/typer \
&& rm bin/ejabberd bin/ejabberd.bat \
&& cp -r /ejabberd/sql lib/ejabberd-*/priv
# Runtime container
FROM alpine:3.11
@ -41,27 +41,27 @@ ENV TERM=xterm \
HOME=/home/ejabberd \
VERSION=${VERSION:-latest}
LABEL maintainer="ProcessOne <contact@process-one.net>" \
product="Ejabberd Community Server Official Docker Image" \
version=$VERSION \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url="https://github.com/processone/docker-ejabberd" \
org.label-schema.build-date=$BUILD_DATE \
org.label-schema.name="Ejabberd Community Server Official Docker Image" \
org.label-schema.description="Robust, Scalable and Extensible Realtime Server using XMPP, MQTT and SIP" \
org.label-schema.url="https://www.ejabberd.im/" \
org.label-schema.vendor="ProcessOne" \
org.label-schema.version=$VERSION \
org.label-schema.schema-version="1.0"
product="Ejabberd Community Server Official Docker Image" \
version=$VERSION \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url="https://github.com/processone/docker-ejabberd" \
org.label-schema.build-date=$BUILD_DATE \
org.label-schema.name="Ejabberd Community Server Official Docker Image" \
org.label-schema.description="Robust, Scalable and Extensible Realtime Server using XMPP, MQTT and SIP" \
org.label-schema.url="https://www.ejabberd.im/" \
org.label-schema.vendor="ProcessOne" \
org.label-schema.version=$VERSION \
org.label-schema.schema-version="1.0"
# 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/conf /home/ejabberd/database /home/ejabberd/logs /home/ejabberd/upload \
&& chown -R ejabberd:ejabberd /home/ejabberd
&& adduser -s /bin/sh -D -G ejabberd ejabberd -u 9000 \
&& mkdir -p /home/ejabberd/conf /home/ejabberd/database /home/ejabberd/logs /home/ejabberd/upload \
&& chown -R ejabberd:ejabberd /home/ejabberd
# Install required dependencies
RUN apk upgrade --update musl \
&& apk add \
&& apk add \
expat \
freetds \
gd \
@ -77,8 +77,8 @@ RUN apk upgrade --update musl \
unixodbc \
yaml \
zlib \
&& ln -fs /usr/lib/libtdsodbc.so.0 /usr/lib/libtdsodbc.so \
&& rm -rf /var/cache/apk/*
&& ln -fs /usr/lib/libtdsodbc.so.0 /usr/lib/libtdsodbc.so \
&& rm -rf /var/cache/apk/*
# Install ejabberd
WORKDIR $HOME

@ -68,6 +68,14 @@ mkdir database
docker run -d --name ejabberd -v $(pwd)/ejabberd.yml:/home/ejabberd/conf/ejabberd.yml -v $(pwd)/database:/home/ejabberd/database -p 5222:5222 ejabberd/ecs
```
### Inspecting the container state
The container is packaging Alpine Linux. You can check the state with the command:
```bash
docker exec -it ejabberd sh
```
### Checking ejabberd log files
You can execute a Docker command to check the content of the log files from inside to container, even if you do not put it on a shared persistent drive:

@ -1,19 +1,19 @@
FROM alpine:3.11
LABEL maintainer="ProcessOne <contact@process-one.net>" \
product="Ejabberd mix development environment"
product="Ejabberd mix development environment"
# Install required dependencies
RUN apk upgrade --update musl \
&& apk add build-base git zlib-dev openssl-dev yaml-dev expat-dev sqlite-dev \
gd-dev jpeg-dev libpng-dev libwebp-dev autoconf automake bash \
elixir erlang-crypto erlang-eunit erlang-mnesia erlang-erts erlang-hipe \
erlang-tools erlang-os-mon erlang-syntax-tools erlang-parsetools \
erlang-runtime-tools erlang-reltool erlang-odbc file curl \
&& rm -rf /var/cache/apk/*
&& apk add build-base git zlib-dev openssl-dev yaml-dev expat-dev sqlite-dev \
gd-dev jpeg-dev libpng-dev libwebp-dev autoconf automake bash \
elixir erlang-crypto erlang-eunit erlang-mnesia erlang-erts erlang-hipe \
erlang-tools erlang-os-mon erlang-syntax-tools erlang-parsetools \
erlang-runtime-tools erlang-reltool erlang-odbc file curl \
&& rm -rf /var/cache/apk/*
# Setup runtime environment
RUN mix local.hex --force \
&& mix local.rebar --force
&& mix local.rebar --force
ENTRYPOINT ["/usr/bin/mix"]
CMD ["compile"]

Loading…
Cancel
Save