From 8c87c7c1a8550ecaa9e19a155e33ea7e78c5dfaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20R=C3=A9mond?= Date: Tue, 18 Feb 2020 10:09:59 +0100 Subject: [PATCH 1/2] Document how to inspect container state --- ecs/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) 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: From 72d3b25a0f9f8e5580b75c09929ce983d3a718aa Mon Sep 17 00:00:00 2001 From: Mickael Remond Date: Tue, 18 Feb 2020 10:43:06 +0100 Subject: [PATCH 2/2] Update to latest Alpine version Fixes #54 --- ecs/Dockerfile | 56 +++++++++++++++++++++++++------------------------- mix/Dockerfile | 18 ++++++++-------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/ecs/Dockerfile b/ecs/Dockerfile index c915f99..fe848c2 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,25 +11,25 @@ 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.9 +FROM alpine:3.11 ARG VERSION ARG VCS_REF ARG BUILD_DATE @@ -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 \ gd \ jpeg \ @@ -76,7 +76,7 @@ RUN apk upgrade --update musl \ unixodbc \ yaml \ zlib \ - && rm -rf /var/cache/apk/* + && rm -rf /var/cache/apk/* # Install ejabberd WORKDIR $HOME diff --git a/mix/Dockerfile b/mix/Dockerfile index 716aff6..c20de1d 100644 --- a/mix/Dockerfile +++ b/mix/Dockerfile @@ -1,19 +1,19 @@ -FROM alpine:3.9 +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 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 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"]