# 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 -y -q install gcc git make curl # Build dependencies in /usr/local/src. WORKDIR /usr/local/src RUN curl https://www.ct.nordu.net/dist/mochiweb-v2.12.2.tar.gz | tar xzf - RUN ln -s mochiweb-2.12.2 mochiweb RUN make -C mochiweb RUN curl https://www.ct.nordu.net/dist/lager-2.1.1.tar.gz | tar xzf - RUN ln -s lager-2.1.1 lager RUN mkdir lager/deps RUN curl https://www.ct.nordu.net/dist/goldrush-0.1.6.tar.gz | tar xzf - -C lager/deps && ln -s goldrush-0.1.6 lager/deps/goldrush RUN make -C lager RUN curl https://www.ct.nordu.net/dist/hackney-1.1.0.tar.gz | tar xzf - RUN ln -s hackney-1.1.0 hackney RUN mkdir hackney/deps RUN curl https://www.ct.nordu.net/dist/erlang-idna-1.0.2.tar.gz | tar xzf - -C hackney/deps && ln -s erlang-idna-1.0.2 hackney/deps/idna RUN curl https://www.ct.nordu.net/dist/ssl_verify_hostname-1.0.4.tar.gz | tar xzf - -C hackney/deps && ln -s ssl_verify_hostname-1.0.4 hackney/deps/ssl_verify_hostname RUN make -C hackney REBAR=../lager/rebar # Build plop and catlfish. 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 RUN make -C catlfish PREFIX=/usr/local release # Config dir and database dir are mounted from host using `-v' to # 'docker run'. VOLUME /usr/local/catlfish VOLUME /var/local/db/catlfish # Working directory is where catlfish.config is. We want to run in # /var/run/catlfish and not in /usr/local/etc/catlfish, so symlink. RUN mkdir -p /var/run/catlfish/erlang_log /var/run/catlfish/sasl_log RUN chgrp -R daemon /var/run/catlfish RUN chmod -R 775 /var/run/catlfish RUN ln -s /usr/local/etc/catlfish/catlfish.config /var/run/catlfish/ WORKDIR /var/run/catlfish # Don't run as root. USER daemon # Run supervisord. ADD supervisord.conf /etc/supervisor/ CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]