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

Loading…
Cancel
Save