diff --git a/ecs/Dockerfile b/ecs/Dockerfile index 6d102f0..e469da6 100644 --- a/ecs/Dockerfile +++ b/ecs/Dockerfile @@ -3,7 +3,7 @@ ARG VERSION ENV VERSION=${VERSION:-latest} \ MIX_ENV=prod LABEL maintainer="ProcessOne " \ - 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 " \ - 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 diff --git a/ecs/README.md b/ecs/README.md index a089b9e..b6bb352 100644 --- a/ecs/README.md +++ b/ecs/README.md @@ -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: diff --git a/mix/Dockerfile b/mix/Dockerfile index 7cbce00..2b1ed08 100644 --- a/mix/Dockerfile +++ b/mix/Dockerfile @@ -1,19 +1,19 @@ FROM alpine:3.11 LABEL maintainer="ProcessOne " \ - 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"]