Browse Source

docker: mysql case

Bastien Sevajol (Algoo) 8 years ago
parent
commit
9db86bf6a0
2 changed files with 15 additions and 7 deletions
  1. 1 0
      docker/Debian_Uwsgi/Dockerfile
  2. 14 7
      docker/Debian_Uwsgi/entrypoint.sh

+ 1 - 0
docker/Debian_Uwsgi/Dockerfile View File

@@ -21,6 +21,7 @@ RUN apt-get update -q \
21 21
       postgresql-client \
22 22
       uwsgi \
23 23
       uwsgi-plugin-python3 \
24
+      mysql-client \
24 25
       libmysqld-dev
25 26
 
26 27
 # Ensure UTF-8

+ 14 - 7
docker/Debian_Uwsgi/entrypoint.sh View File

@@ -7,6 +7,8 @@
7 7
 # TODO: README QQCH pour les ports ? 80, 3060 et 5333
8 8
 # TODO: generate cookie secrent (if not yet done)
9 9
 # TODO: run uwsgi as other user
10
+# TODO: Gestion des migrations
11
+# TODO: Verbosite des logs ?
10 12
 
11 13
 #
12 14
 # ENVIRONMENT VARIABLES ARE:
@@ -47,6 +49,12 @@ if [ "$DATABASE_TYPE" = mysql ] ; then
47 49
     fi
48 50
     # engine is mysql+oursql
49 51
     DATABASE_TYPE=mysql+oursql
52
+
53
+    # Check if database must be init
54
+    TEST_TABLE=$(mysql --host="$DATABASE_HOST" --user="$DATABASE_USER" --password="$DATABASE_USER" --database="$DATABASE_NAME" -s -N --execute="SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '$DATABASE_NAME' AND table_name = 'content';")
55
+    if [ ${TEST_TABLE} = 0 ] ; then
56
+        INIT_DATABASE=true
57
+    fi
50 58
 fi
51 59
 
52 60
 # PostgreSQL case
@@ -56,22 +64,21 @@ if [ "$DATABASE_TYPE" = postgresql ] ; then
56 64
         DATABASE_PORT=5432
57 65
     fi
58 66
     DATABASE_SUFFIX="?client_encoding=utf8"
59
-fi
60 67
 
61
-# Update sqlalchemy.url
62
-sed -i "s/\(sqlalchemy.url *= *\).*/\\sqlalchemy.url = $DATABASE_TYPE:\/\/$DATABASE_USER:$DATABASE_PASSWORD@$DATABASE_HOST:$DATABASE_PORT\/$DATABASE_NAME$DATABASE_SUFFIX/" /etc/tracim/config.ini
63
-
64
-# Initialize database if it is a fresh install
65
-if [ "$DATABASE_TYPE" = postgresql ] ; then
66
-    TEST_TABLE=$(PGPASSWORD="$DATABASE_PASSWORD" psql -U ${DATABASE_USER} -h ${DATABASE_HOST} -d ${DATABASE_NAME} -t -c "SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'content' );")
68
+    # Check if database must be init
69
+    TEST_TABLE=$(PGPASSWORD="$DATABASE_PASSWORD" psql -U ${DATABASE_USER} -h ${TEST_TABLE} -d ${DATABASE_NAME} -t -c "SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'content' );")
67 70
     if [ ${TEST_TABLE} = f ] ; then
68 71
         INIT_DATABASE=true
69 72
     fi
70 73
 fi
71 74
 
75
+# Initialize database if needed
72 76
 if [ "$INIT_DATABASE" = true ] ; then
73 77
     cd /tracim/tracim/ && gearbox setup-app -c config.ini
74 78
 fi
75 79
 
80
+# Update sqlalchemy.url
81
+sed -i "s/\(sqlalchemy.url *= *\).*/\\sqlalchemy.url = $DATABASE_TYPE:\/\/$DATABASE_USER:$DATABASE_PASSWORD@$DATABASE_HOST:$DATABASE_PORT\/$DATABASE_NAME$DATABASE_SUFFIX/" /etc/tracim/config.ini
82
+
76 83
 # Start with uwsgi
77 84
 uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini