view scripts/Docker/roundup_start @ 7315:b8e88d4ca95b

Add redis library to docker image; mention xapian is installed Support using redis for session data. xapian has to match the version of xapian libraries installed in the image. So it is nt installed by requirements.txt. Make note in requirements.txt that it is installed.
author John Rouillard <rouilj@ieee.org>
date Thu, 11 May 2023 00:01:15 -0400
parents b5fb268b7f04
children 7b9bddda9d2d
line wrap: on
line source

#! /bin/sh

# When container starts verify that the trackers are configured.
# If they are, start the server otherwise run roundup-admin
# for installation and initialization.

# "$@" should be a set of tracker=directory pairs.

if ! [ -z "$SHELL_DEBUG" ]; then
    set -xv
fi

trap exit INT

do_exit=0

for tracker_spec in "$@"; do
    # IFS== set a=b doesn't assign $1 and $2 in busybox ash
    # it also clobbers '$@'. 'echo mumble | read' starts read in a
    # subshell so vars are not available in parent.
    IFS="=" read tracker directory <<- EOE
    $tracker_spec
	EOE
    # ^ is a tab for use with <<-

    # was $tracker_spec in the form of a=b, if not ignore it.
    # allows setting CMD to -i index_template issue=tracker for example.
    if [ -z "$directory" ]; then continue; fi

    # something is specified or built wrong. Don't start.
    if [ ! -d "$directory" ]; then
        printf "Unable to find directory %s. Exiting\n" "$directory"
	exit 1
    fi

    # user must define web in config.ini.
    if ! grep '^\s*web\s\s*=\s\s*' "$directory/config.ini" > /dev/null; then
        roundup-admin -i "$directory" install
        do_exit=1
    fi

    # we have a valid config.ini so init database if not done
    if [ $do_exit == 0 -a ! -e "$directory/.init_done" ]; then
        if roundup-admin -i "$directory" init; then
	  cat > "$directory/.init_done" <<- EOD
	  Don't delete this file. The docker startup needs it so it won't
	  re-initialze the database destroying all the data.
	EOD
	else
	    do_exit=1
	fi
    fi
done

# if any config.ini needs editing don't start up.
if [ $do_exit == 0 ]; then
   # make roundup-server process 1 with exec
   exec roundup-server -n 0.0.0.0 "$@"
fi

exit 0

Roundup Issue Tracker: http://roundup-tracker.org/