Browse Source

docker: sqlite

Bastien Sevajol (Algoo) 8 years ago
parent
commit
b35f414627

+ 5 - 3
docker/Debian_Uwsgi/Dockerfile View File

22
       uwsgi \
22
       uwsgi \
23
       uwsgi-plugin-python3 \
23
       uwsgi-plugin-python3 \
24
       mysql-client \
24
       mysql-client \
25
-      libmysqld-dev
25
+      libmysqld-dev \
26
+      sqlite3
26
 
27
 
27
 # Ensure UTF-8
28
 # Ensure UTF-8
28
 RUN locale-gen en_US.UTF-8 en_us \
29
 RUN locale-gen en_US.UTF-8 en_us \
43
      && echo 20161216001
44
      && echo 20161216001
44
 
45
 
45
 # Prepare volumes
46
 # Prepare volumes
46
-RUN mkdir /etc/tracim
47
-VOLUME ["/etc/tracim"]
47
+RUN mkdir /etc/tracim \
48
+    && mkdir /var/lib/tracim
49
+VOLUME ["/etc/tracim", "/var/lib/tracim"]
48
 
50
 
49
 # Copy needed files
51
 # Copy needed files
50
 COPY uwsgi.ini /tracim/tracim/uwsgi.ini.template
52
 COPY uwsgi.ini /tracim/tracim/uwsgi.ini.template

+ 28 - 26
docker/Debian_Uwsgi/check_env_vars.sh View File

6
     exit 1
6
     exit 1
7
 fi
7
 fi
8
 
8
 
9
-# Ensure DATABASE_USER is set
10
-if ! [ -n "$DATABASE_USER" ]; then
11
-    echo "You must set DATABASE_USER environment variable"
12
-    exit 1
13
-fi
9
+if ! [ "$DATABASE_TYPE" = sqlite ]; then
10
+    # Ensure DATABASE_USER is set
11
+    if ! [ -n "$DATABASE_USER" ]; then
12
+        echo "You must set DATABASE_USER environment variable"
13
+        exit 1
14
+    fi
14
 
15
 
15
-# Ensure DATABASE_PASSWORD is set
16
-if ! [ -n "$DATABASE_PASSWORD" ]; then
17
-    echo "You must set DATABASE_PASSWORD environment variable"
18
-    exit 1
19
-fi
16
+    # Ensure DATABASE_PASSWORD is set
17
+    if ! [ -n "$DATABASE_PASSWORD" ]; then
18
+        echo "You must set DATABASE_PASSWORD environment variable"
19
+        exit 1
20
+    fi
20
 
21
 
21
-# Ensure DATABASE_HOST is set
22
-if ! [ -n "$DATABASE_HOST" ]; then
23
-    echo "You must set DATABASE_HOST environment variable"
24
-    exit 1
25
-fi
22
+    # Ensure DATABASE_HOST is set
23
+    if ! [ -n "$DATABASE_HOST" ]; then
24
+        echo "You must set DATABASE_HOST environment variable"
25
+        exit 1
26
+    fi
26
 
27
 
27
-# Ensure DATABASE_NAME is set
28
-if ! [ -n "$DATABASE_NAME" ]; then
29
-    echo "You must set DATABASE_NAME environment variable"
30
-    exit 1
31
-fi
28
+    # Ensure DATABASE_NAME is set
29
+    if ! [ -n "$DATABASE_NAME" ]; then
30
+        echo "You must set DATABASE_NAME environment variable"
31
+        exit 1
32
+    fi
32
 
33
 
33
-# Ensure DATABASE_TYPE value
34
-case "$DATABASE_TYPE" in
35
-    postgresql|mysql|sqlite) ;;
36
-    *) echo "DATABASE_TYPE environment variable must be one of these: \
37
-postgresql, mysql, sqlite" ;;
38
-esac
34
+    # Ensure DATABASE_TYPE value
35
+    case "$DATABASE_TYPE" in
36
+        postgresql|mysql|sqlite) ;;
37
+        *) echo "DATABASE_TYPE environment variable must be one of these: \
38
+    postgresql, mysql, sqlite" ;;
39
+    esac
40
+fi

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

72
     fi
72
     fi
73
 fi
73
 fi
74
 
74
 
75
+# SQLite case
76
+if [ "$DATABASE_TYPE" = sqlite ] ; then
77
+    if [ ! -f /var/lib/tracim/tracim.db ]; then
78
+        INIT_DATABASE=true
79
+    fi
80
+fi
81
+
82
+# Update sqlalchemy.url
83
+if ! [ "$DATABASE_TYPE" = sqlite ] ; then
84
+    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
85
+else
86
+    sed -i "s/\(sqlalchemy.url *= *\).*/\\sqlalchemy.url = sqlite:\/\/\/\/var\/lib\/tracim\/tracim.db/" /etc/tracim/config.ini
87
+fi
88
+
75
 # Initialize database if needed
89
 # Initialize database if needed
76
 if [ "$INIT_DATABASE" = true ] ; then
90
 if [ "$INIT_DATABASE" = true ] ; then
77
     cd /tracim/tracim/ && gearbox setup-app -c config.ini
91
     cd /tracim/tracim/ && gearbox setup-app -c config.ini
78
 fi
92
 fi
79
 
93
 
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
-
83
 # Start with uwsgi
94
 # Start with uwsgi
84
 uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini
95
 uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini