From 57ecc71ebe084c4b5e670cea0cdc9f872bbf1e05 Mon Sep 17 00:00:00 2001 From: Disassembler Date: Thu, 13 Sep 2018 21:30:38 +0200 Subject: [PATCH] LXCize ODK setup --- opendatakit/setup.sh | 24 ++++++++++-------------- opendatakit/setup/etc/init.d/opendatakit | 16 ++++------------ 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/opendatakit/setup.sh b/opendatakit/setup.sh index 50691b8..6784b9c 100755 --- a/opendatakit/setup.sh +++ b/opendatakit/setup.sh @@ -1,21 +1,14 @@ #!/bin/sh set -e -SOURCE_DIR=$(realpath $(dirname "${0}"))/opendatakit +SOURCE_DIR=$(realpath $(dirname "${0}"))/setup # Check prerequisites -lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh -lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh -service postgres start - -# Build Docker container -docker build -t opendatakit ${SOURCE_DIR} -cp ${SOURCE_DIR}/etc/init.d/opendatakit /etc/init.d/opendatakit -rc-update -u +[ ! -e /run/openrc/started/postgres ] && service postgres start && STOP_POSTGRES=1 # Create databases export OPENDATAKIT_PWD=$(head -c 18 /dev/urandom | base64) -envsubst <${SOURCE_DIR}/createdb.sql | docker exec -i postgres psql +envsubst <${SOURCE_DIR}/createdb.sql | lxc-attach -u 5432 -g 5432 postgres -- psql # Configure OpenDataKit export OPENDATAKIT_ADMIN_USER=admin @@ -26,9 +19,13 @@ envsubst <${SOURCE_DIR}/srv/opendatakit/conf/security.properties >/srv/opendatak cp ${SOURCE_DIR}/srv/opendatakit/conf/server.xml /srv/opendatakit/conf/server.xml chown -R 8015:8015 /srv/opendatakit/conf +# Install service +cp ${SOURCE_DIR}/etc/init.d/opendatakit /etc/init.d/opendatakit +rc-update -u + # Populate database service opendatakit start -until docker logs opendatakit 2>&1 | grep -q 'org.apache.catalina.startup.Catalina.start'; do +until grep -q 'org.apache.catalina.startup.Catalina.start' /var/log/lxc/opendatakit.log; do sleep 1 done service opendatakit stop @@ -38,9 +35,8 @@ export OPENDATAKIT_ADMIN_PWD=$(head -c 12 /dev/urandom | base64) export OPENDATAKIT_ADMIN_SALT=$(head -c 4 /dev/urandom | hexdump -e '"%x"') # Must be 8 characters export OPENDATAKIT_ADMIN_BASIC_HASH=$(echo -n "${OPENDATAKIT_ADMIN_PWD}{${OPENDATAKIT_ADMIN_SALT}}" | sha1sum | tr -d " -") export OPENDATAKIT_ADMIN_DIGEST_HASH=$(echo -n "${OPENDATAKIT_ADMIN_USER}:${OPENDATAKIT_ADMIN_REALM}:${OPENDATAKIT_ADMIN_PWD}" | md5sum | tr -d " -") -envsubst <${SOURCE_DIR}/adminpwd.sql | docker exec -i postgres psql opendatakit +envsubst <${SOURCE_DIR}/adminpwd.sql | lxc-attach -u 5432 -g 5432 postgres -- psql opendatakit vmmgr update-login opendatakit "${OPENDATAKIT_ADMIN_USER}" "${OPENDATAKIT_ADMIN_PWD}" # Stop services required for build -service postgres stop -service postfix stop +[ ! -z ${STOP_POSTGRES} ] && service postgres stop diff --git a/opendatakit/setup/etc/init.d/opendatakit b/opendatakit/setup/etc/init.d/opendatakit index 902cec5..03f5084 100755 --- a/opendatakit/setup/etc/init.d/opendatakit +++ b/opendatakit/setup/etc/init.d/opendatakit @@ -1,21 +1,13 @@ #!/sbin/openrc-run -description="OpenDataKit Aggregate docker container" +description="OpenDataKit Aggregate container" depend() { - need docker postfix postgres + need cgroups postgres } start() { - /usr/bin/docker run -d --rm \ - --name opendatakit \ - -h opendatakit \ - --link postfix \ - --link postgres \ - -v /srv/opendatakit/conf/server.xml:/srv/tomcat/conf/server.xml \ - -v /srv/opendatakit/conf/jdbc.properties:/srv/tomcat/webapps/ROOT/WEB-INF/classes/jdbc.properties \ - -v /srv/opendatakit/conf/security.properties:/srv/tomcat/webapps/ROOT/WEB-INF/classes/security.properties \ - opendatakit + lxc-start opendatakit } start_post() { @@ -27,5 +19,5 @@ stop_pre() { } stop() { - /usr/bin/docker stop opendatakit + lxc-stop opendatakit }