diff options
author | Linus Nordberg <linus@nordberg.se> | 2015-04-01 22:14:13 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordberg.se> | 2015-04-01 22:14:13 +0200 |
commit | 4caf30c37e986c0f8a70591571d1e4c9fd94ce42 (patch) | |
tree | 7a7f43aaeba5c1d17db61d0914d3da436c2ccdd4 /packaging/docker/catlfish-merge | |
parent | 4860fff216892010a997547b0fa19cd4505cb804 (diff) |
Dockerfile for merge, first cut.
Diffstat (limited to 'packaging/docker/catlfish-merge')
-rw-r--r-- | packaging/docker/catlfish-merge/Dockerfile | 35 | ||||
-rwxr-xr-x | packaging/docker/catlfish-merge/merge.sh | 30 |
2 files changed, 65 insertions, 0 deletions
diff --git a/packaging/docker/catlfish-merge/Dockerfile b/packaging/docker/catlfish-merge/Dockerfile new file mode 100644 index 0000000..82b46fa --- /dev/null +++ b/packaging/docker/catlfish-merge/Dockerfile @@ -0,0 +1,35 @@ +# Docker file for catlfish merge. +# +# $ docker run \ +# -v /etc/catlfish:/usr/local/etc/catlfish \ +# -v /var/local/db/catlfish-merge:/var/local/db/catlfish-merge \ +# catlfish-merge + +FROM base +RUN apt-get update +RUN echo 'debconf debconf/frontend select noninteractive' | debconf-set-selections +RUN apt-get -y -q install python-ecdsa python-yaml + +WORKDIR /usr/local/src +RUN git clone https://git.nordu.net/catlfish.git + +# Config dir and database dir are mounted from host using `-v' to +# 'docker run'. +VOLUME /usr/local/etc/catlfish +VOLUME /var/local/db/catlfish-merge + +# We run from /var/run/catlfish. +RUN mkdir /var/run/catlfish +RUN chgrp daemon /var/run/catlfish +RUN chmod 775 /var/run/catlfish + +# Copy merge.sh. +RUN mkdir -p /usr/local/catlfish/bin +ADD merge.sh /usr/local/catlfish/bin/ + +# Don't run as root. +USER daemon + +# Start merge.sh +WORKDIR /var/run/catlfish +CMD ["/usr/local/catlfish/bin/merge.sh", "300", "1200", "/var/local/db/catlfish-merge"] diff --git a/packaging/docker/catlfish-merge/merge.sh b/packaging/docker/catlfish-merge/merge.sh new file mode 100755 index 0000000..f1f3b5c --- /dev/null +++ b/packaging/docker/catlfish-merge/merge.sh @@ -0,0 +1,30 @@ +#! /bin/sh + +# Default intervals +# - 5m before first merge +# - 20m between subsequent merges +S1=300; [ -n "$1" ] && S1=$1 +S2=1200; [ -n "$2" ] && S2=$2 + +DBDIR="$3" + +if ! [ -d "$DBDIR" ]; then + rm -rf $DBDIR + mkdir $DBDIR + mkdir $DBDIR/chains + touch $DBDIR/logorder +fi + +date +echo "merge: waiting $(expr $S1 / 60)m$(expr $S1 % 60)s before merging for the first time" +sleep $S1 + +while true; do + echo "$0: merging" + date + python /usr/local/src/catlfish/tools/merge.py \ + --config /usr/local/etc/catlfish/system.cfg \ + --localconfig /usr/local/etc/catlfish/merge.cfg + echo "merge: waiting $(expr $S2 / 60)m$(expr $S2 % 60)s before merging again" + sleep $S2 +done |