From c1826010cbed92cdacb0b12722e6c523f9a21284 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Fri, 27 Mar 2015 13:28:33 +0100 Subject: WIP --- packaging/docker/README | 23 +++++++++++++++++----- packaging/docker/base-debian:jessie/Dockerfile | 3 ++- packaging/docker/build-from-source.sh | 5 +++++ packaging/docker/build.sh | 5 ----- packaging/docker/catlfish-dev/Dockerfile | 27 +++++++++++++++++--------- packaging/docker/catlfish-dev/supervisord.conf | 2 +- packaging/docker/erlang/Dockerfile | 2 +- 7 files changed, 45 insertions(+), 22 deletions(-) create mode 100755 packaging/docker/build-from-source.sh delete mode 100755 packaging/docker/build.sh (limited to 'packaging') diff --git a/packaging/docker/README b/packaging/docker/README index 0a75c10..147fa41 100644 --- a/packaging/docker/README +++ b/packaging/docker/README @@ -1,14 +1,27 @@ -Requirements: +Information about creating a docker image for running catlfish from a +binary release or with catlfish built from source. + + +Requirements +------------ + - lack of expectations regarding security -- docker doesn't verify downloaded images - a 64-bit Linux system - lxc-docker version 1.3 or later -Build a docker image with catlfish. Note that you will have to cd into -this directory, catlfish/packaging/docker, in order for docker to find -the appropriate docker files. - $ ./build.sh +Building an image +----------------- + +Run build-from-release.sh or build-from-source.sh to build a docker +image with catlfish. Note that you will have to cd into this +directory, catlfish/packaging/docker, in order for docker to find the +appropriate docker files. + + +Running it +---------- Run the resulting image in interactive mode. diff --git a/packaging/docker/base-debian:jessie/Dockerfile b/packaging/docker/base-debian:jessie/Dockerfile index 6a30a45..dbd5d37 100644 --- a/packaging/docker/base-debian:jessie/Dockerfile +++ b/packaging/docker/base-debian:jessie/Dockerfile @@ -1,5 +1,6 @@ FROM debian:jessie RUN apt-get update RUN echo 'debconf debconf/frontend select noninteractive' | debconf-set-selections -RUN apt-get install -y -q supervisor +RUN apt-get -y -q upgrade +RUN apt-get -y -q install supervisor RUN mkdir -p /var/log/supervisor diff --git a/packaging/docker/build-from-source.sh b/packaging/docker/build-from-source.sh new file mode 100755 index 0000000..2b47222 --- /dev/null +++ b/packaging/docker/build-from-source.sh @@ -0,0 +1,5 @@ +#! /bin/sh + +docker build -t base base-debian:jessie +docker build -t erlang erlang +docker build -t catlfish catlfish-dev diff --git a/packaging/docker/build.sh b/packaging/docker/build.sh deleted file mode 100755 index 2b47222..0000000 --- a/packaging/docker/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh - -docker build -t base base-debian:jessie -docker build -t erlang erlang -docker build -t catlfish catlfish-dev diff --git a/packaging/docker/catlfish-dev/Dockerfile b/packaging/docker/catlfish-dev/Dockerfile index cbfc285..4300b5e 100644 --- a/packaging/docker/catlfish-dev/Dockerfile +++ b/packaging/docker/catlfish-dev/Dockerfile @@ -1,26 +1,35 @@ +# Catlfish expects to find its configuration in +# /usr/local/etc/catlfish/catlfish.config so mounting +# /usr/local/etc/catlfish is recommended. This can be done using the +# `-v' flag to `docker run'. Example: + +# $ docker run -v /etc/catlfish:/usr/local/etc/catlfish catlfish + FROM erlang RUN apt-get update RUN echo 'debconf debconf/frontend select noninteractive' | debconf-set-selections -RUN apt-get install -y -q \ - gcc \ - git \ - make +RUN apt-get -y -q install gcc git make -WORKDIR /opt +WORKDIR /usr/local/src -RUN git clone -b v2.12.2 https://github.com/mochi/mochiweb +RUN curl https://www.ct.nordu.net/dist/mochiweb-v2.12.2.tar.gz | tar xf - RUN make -C mochiweb -RUN git clone -b 2.1.1 https://github.com/basho/lager +RUN curl https://www.ct.nordu.net/dist/lager-2.1.1.tar.gz | tar xf - RUN make -C lager -RUN git clone -b 1.1.0 https://github.com/benoitc/hackney.git +RUN curl https://www.ct.nordu.net/dist/hackney-1.1.0.tar.gz | tar xf - RUN make -C hackney REBAR=../lager/rebar RUN git clone https://git.nordu.net/plop.git RUN make -C plop RUN git clone https://git.nordu.net/catlfish.git -RUN make -C catlfish all release +RUN make -C catlfish all +RUN make -C catlfish PREFIX=/usr/local/catlfish release + +VOLUME /usr/local/catlfish +VOLUME /var/local/db/catlfish ADD supervisord.conf /etc/supervisor/ +WORKDIR /usr/local/etc/catlfish diff --git a/packaging/docker/catlfish-dev/supervisord.conf b/packaging/docker/catlfish-dev/supervisord.conf index c973bff..d857e54 100644 --- a/packaging/docker/catlfish-dev/supervisord.conf +++ b/packaging/docker/catlfish-dev/supervisord.conf @@ -2,4 +2,4 @@ nodaemon=true [program:catlfish] -command=/opt/catlfish/rel/bin/erl -config catlfish +command=/usr/local/catlfish/bin/erl -config catlfish diff --git a/packaging/docker/erlang/Dockerfile b/packaging/docker/erlang/Dockerfile index c33a22b..531064d 100644 --- a/packaging/docker/erlang/Dockerfile +++ b/packaging/docker/erlang/Dockerfile @@ -1,7 +1,7 @@ FROM base RUN apt-get update RUN echo 'debconf debconf/frontend select noninteractive' | debconf-set-selections -RUN apt-get install -y -q \ +RUN apt-get -y -q install \ erlang-base \ erlang-crypto \ erlang-dev \ -- cgit v1.1