From 9c6aca3b76bb1eed0fc29ed737034481f676aaac Mon Sep 17 00:00:00 2001 From: Kevin Decherf Date: Sun, 10 Mar 2024 16:21:31 +0100 Subject: [PATCH] Fix SQLite provisioning If we use a local folder volume binding, install_wallabag was failing because of missing file and permission issues. This reworks the way we initially create the database when it is missing or empty. Superseeds #386 Fixes #316 #346 Signed-off-by: Kevin Decherf --- root/entrypoint.sh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/root/entrypoint.sh b/root/entrypoint.sh index 5aadb12..9bbfe99 100755 --- a/root/entrypoint.sh +++ b/root/entrypoint.sh @@ -23,6 +23,8 @@ install_wallabag() { provisioner() { SYMFONY__ENV__DATABASE_DRIVER=${SYMFONY__ENV__DATABASE_DRIVER:-pdo_sqlite} POPULATE_DATABASE=${POPULATE_DATABASE:-True} + SQLITE_DB_DIR="/var/www/wallabag/data/db" + SQLITE_DB_FILEPATH="$SQLITE_DB_DIR/wallabag.sqlite" # Replace environment variables envsubst < /etc/wallabag/parameters.template.yml > app/config/parameters.yml @@ -33,10 +35,17 @@ provisioner() { fi # Configure SQLite database - SQLITE_FILE_SIZE=$(wc -c "/var/www/wallabag/data/db/wallabag.sqlite" | awk '{print $1}') - if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ] && ([ ! -f "/var/www/wallabag/data/db/wallabag.sqlite" ] || [ "$SQLITE_FILE_SIZE" = 0 ]) ; then - echo "Configuring the SQLite database ..." - install_wallabag + if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ]; then + # mkdir and chown are mandatory for local folder binding + if [ ! -f "$SQLITE_DB_FILEPATH" ]; then + mkdir -p "$SQLITE_DB_DIR" + chown nobody: "$SQLITE_DB_DIR" + fi + + if [ ! -s "$SQLITE_DB_FILEPATH" ]; then + echo "Configuring the SQLite database ..." + install_wallabag + fi fi # Configure MySQL / MariaDB database