Mercurial > p > roundup > code
diff scripts/Docker/roundup_start @ 6555:34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
This moves the Docker files to the subdirectory scripts/Docker.
Attempted to provide a slightly guided install of a tracker using the
roundup_start script
It include the docker-compose.yml file donated by Norbert
Schlemmer. Hopefully I didn't break it when modifying it for it's new
home.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 12 Dec 2021 19:19:52 -0500 |
| parents | |
| children | b5fb268b7f04 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/Docker/roundup_start Sun Dec 12 19:19:52 2021 -0500 @@ -0,0 +1,59 @@ +#! /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. + +set -xv + +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 -p 9090 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
