Not sure if the issue I'm experiencing is with the container or Bookstack itself. I'm using the CA template and following the mariadb instructions from Gilbn's technicalramblings blog. It seems that the process chokes on an SQL command. Even after starting from a clean slate (i.e. delete and re-create the appdata/bookstack folder and bookstack database in mariadb) I get the same result.
And the logs
-------------------------------------
_ ()
| | ___ _ __
| | / __| | | / \
| | \__ \ | | | () |
|_| |___/ |_| \__/
Brought to you by linuxserver.io
-------------------------------------
To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------
User uid: 99
User gid: 100
-------------------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing...
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing...
using keys found in /config/keys
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing...
App Key found - setting variable for seds
Running config - db_user set
/var/run/s6/etc/cont-init.d/50-config: line 67: warning: command substitution: ignored null byte in input
/var/run/s6/etc/cont-init.d/50-config: line 67: warning: command substitution: ignored null byte in input
Migrating: 2015_08_29_105422_add_roles_and_permissions
Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table '`bookstack`.`roles`' already exists (SQL: create table `roles` (`id` int unsigned not null auto_increment primary key, `name` varchar(191) not null, `display_name` varchar(191) null, `description` varchar(191) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attempting to run a query, we'll format the error
666| // message to include the bindings with SQL, which will make this exception a
667| // lot more helpful to the developer instead of just the database's errors.
668| catch (Exception $e) {
> 669| throw new QueryException(
670| $query, $this->prepareBindings($bindings), $e
671| );
672| }
673|
Exception trace:
1 Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table '`bookstack`.`roles`' already exists")
/var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:123
2 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table '`bookstack`.`roles`' already exists")
/var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:121
Please use the argument -v to see more details.
[cont-init.d] 50-config: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.