Browse Source

docker: sqlite

Bastien Sevajol (Algoo) 8 years ago
parent
commit
b35f414627

+ 5 - 3
docker/Debian_Uwsgi/Dockerfile View File

@@ -22,7 +22,8 @@ RUN apt-get update -q \
22 22
       uwsgi \
23 23
       uwsgi-plugin-python3 \
24 24
       mysql-client \
25
-      libmysqld-dev
25
+      libmysqld-dev \
26
+      sqlite3
26 27
 
27 28
 # Ensure UTF-8
28 29
 RUN locale-gen en_US.UTF-8 en_us \
@@ -43,8 +44,9 @@ RUN git clone https://github.com/tracim/tracim.git \
43 44
      && echo 20161216001
44 45
 
45 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 51
 # Copy needed files
50 52
 COPY uwsgi.ini /tracim/tracim/uwsgi.ini.template

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

@@ -6,33 +6,35 @@ if ! [ -n "$DATABASE_TYPE" ]; then
6 6
     exit 1
7 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,13 +72,24 @@ if [ "$DATABASE_TYPE" = postgresql ] ; then
72 72
     fi
73 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 89
 # Initialize database if needed
76 90
 if [ "$INIT_DATABASE" = true ] ; then
77 91
     cd /tracim/tracim/ && gearbox setup-app -c config.ini
78 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 94
 # Start with uwsgi
84 95
 uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini