Bladeren bron

docker: mysql case

Bastien Sevajol (Algoo) 8 jaren geleden
bovenliggende
commit
9db86bf6a0
2 gewijzigde bestanden met toevoegingen van 15 en 7 verwijderingen
  1. 1 0
      docker/Debian_Uwsgi/Dockerfile
  2. 14 7
      docker/Debian_Uwsgi/entrypoint.sh

+ 1 - 0
docker/Debian_Uwsgi/Dockerfile Bestand weergeven

21
       postgresql-client \
21
       postgresql-client \
22
       uwsgi \
22
       uwsgi \
23
       uwsgi-plugin-python3 \
23
       uwsgi-plugin-python3 \
24
+      mysql-client \
24
       libmysqld-dev
25
       libmysqld-dev
25
 
26
 
26
 # Ensure UTF-8
27
 # Ensure UTF-8

+ 14 - 7
docker/Debian_Uwsgi/entrypoint.sh Bestand weergeven

7
 # TODO: README QQCH pour les ports ? 80, 3060 et 5333
7
 # TODO: README QQCH pour les ports ? 80, 3060 et 5333
8
 # TODO: generate cookie secrent (if not yet done)
8
 # TODO: generate cookie secrent (if not yet done)
9
 # TODO: run uwsgi as other user
9
 # TODO: run uwsgi as other user
10
+# TODO: Gestion des migrations
11
+# TODO: Verbosite des logs ?
10
 
12
 
11
 #
13
 #
12
 # ENVIRONMENT VARIABLES ARE:
14
 # ENVIRONMENT VARIABLES ARE:
47
     fi
49
     fi
48
     # engine is mysql+oursql
50
     # engine is mysql+oursql
49
     DATABASE_TYPE=mysql+oursql
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
 fi
58
 fi
51
 
59
 
52
 # PostgreSQL case
60
 # PostgreSQL case
56
         DATABASE_PORT=5432
64
         DATABASE_PORT=5432
57
     fi
65
     fi
58
     DATABASE_SUFFIX="?client_encoding=utf8"
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
     if [ ${TEST_TABLE} = f ] ; then
70
     if [ ${TEST_TABLE} = f ] ; then
68
         INIT_DATABASE=true
71
         INIT_DATABASE=true
69
     fi
72
     fi
70
 fi
73
 fi
71
 
74
 
75
+# Initialize database if needed
72
 if [ "$INIT_DATABASE" = true ] ; then
76
 if [ "$INIT_DATABASE" = true ] ; then
73
     cd /tracim/tracim/ && gearbox setup-app -c config.ini
77
     cd /tracim/tracim/ && gearbox setup-app -c config.ini
74
 fi
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
 # Start with uwsgi
83
 # Start with uwsgi
77
 uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini
84
 uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini