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

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