Browse Source

mysql support in docker

aguryev 3 years ago
parent
commit
9627fd9485
3 changed files with 34 additions and 11 deletions
  1. 5 10
      run_services_with_mysql.sh
  2. 26 0
      start_mysql_container.sh
  3. 3 1
      ui/app/views.py

+ 5 - 10
run_services_with_mysql.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # default ports
-#       UI    API    DF     RD     SQL
+#       UI    API    DF     RD    MYSQL
 ports=("80" "5000" "5050" "6380" "3305")
 # default flag for bulding docker images 
 b=true
@@ -25,7 +25,7 @@ do
 		"-rd")
 			ports[3]=${args[$i+1]}
 			;;
-		"-sql")
+		"-mysql")
 			ports[4]=${args[$i+1]}
 			;;
 		"-b")
@@ -60,12 +60,7 @@ then
 fi
 
 # running containers
-echo
-echo Starting MySQL...
-cd mysql
-docker build -t mysql-baangt:latest .
-cd ..
-docker run --name mysql -p ${ports[4]}:3306 -d -e MYSQL_RANDOM_ROOT_PASSWORD=yes mysql-baangt:latest
+
 # Redis
 echo
 echo Starting Redis...
@@ -91,7 +86,7 @@ echo Starting UI Service...
 docker run -d -p ${ports[0]}:5000 --name baangt-ui  \
     -e DATABASE_URL=mysql+pymysql://baangt:12345@172.17.0.1:${ports[4]}/definition \
     -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]} \
-    -e BAANGT_API_HOST=172.17.0.1:${ports[1]}  baangt-ui:latest
+    -e BAANGT_API_HOST=172.17.0.1:${ports[1]} --rm baangt-ui:latest
 
 # API Service
 echo
@@ -99,4 +94,4 @@ echo Starting Execution API Service...
 docker run -d -p ${ports[1]}:5000 --name baangt-api  \
     -e BAANGT_DATAFILE_HOST=172.17.0.1:${ports[2]}  \
     -e DATABASE_URL=mysql+pymysql://baangt:12345@172.17.0.1:${ports[4]}/execution \
-    -e REDIS_URL=redis://172.17.0.1:${ports[3]}/0 baangt-api:latest
+    -e REDIS_URL=redis://172.17.0.1:${ports[3]}/0 --rm baangt-api:latest

+ 26 - 0
start_mysql_container.sh

@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# default mysql port
+port="3305"
+
+# parse arguments
+args=("$@")
+
+if [ $# -gt 0 ]
+then
+	port=${args[0]}
+fi
+
+echo ${args}
+echo $#
+echo Port: ${port}
+
+# building docker images
+echo
+echo Building MySQL image...
+docker build -t mysql-baangt:latest mysql
+
+# running docker container
+echo
+echo Starting MySQL container...
+docker run --name mysql2 -p ${port}:3306 -d -e MYSQL_RANDOM_ROOT_PASSWORD=yes --rm mysql-baangt:latest

+ 3 - 1
ui/app/views.py

@@ -1,5 +1,5 @@
 
-from flask import render_template, redirect, flash, request, url_for, send_from_directory, jsonify
+from flask import render_template, redirect, flash, request, url_for, send_from_directory, jsonify, abort
 from flask_login import login_required, current_user, login_user, logout_user
 from flask.logging import default_handler
 from app import app, db, models, forms, utils
@@ -605,6 +605,8 @@ def get_results(call_id):
 
 	# show results
 	call = models.TestRunCall.query.get(uuid.UUID(call_id).bytes)
+	if not call:
+		abort(404)
 
 	if not call.is_finished and not call.is_failed:
 		# update Testrun calls