TheAxelander / OpenBudgeteer

OpenBudgeteer is a budgeting app based on the Bucket Budgeting Principle
https://theaxelander.github.io
MIT License
745 stars 42 forks source link

[1.8] Missing SQLite library in ASP.NET Alpine Docker image #233

Closed diogoan closed 4 months ago

diogoan commented 4 months ago

Describe the bug I've been trying to deploy the application by following the instructions on https://theaxelander.github.io/latest/quick-start/, but I had no success. I used both docker compose (by Portainer) and docker run methods, but I got the same error.

When I use the latest or pre-release image, I got the following error, and the container goes to Exited status:

Error loading shared library libe_sqlite3: No such file or directory at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number() at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number() at SQLitePCL.raw.SetProvider(ISQLite3Provider imp) at SQLitePCL.Batteries_V2.Init() at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr) --- End of inner exception stack trace --- at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr) at Microsoft.Data.Sqlite.SqliteConnection..cctor() --- End of inner exception stack trace ---

(the entire log is here: _openbudgeteer_logs.txt)

When I use the 1.7 image, I got no errors at all, but the web interface is not accessible either.

To Reproduce Steps to reproduce the behavior:

  1. Just follow the steps in https://theaxelander.github.io/latest/quick-start/, using SQLITE or TEMBDB.

Expected behavior OpenBudgeteer is deployed successfully.

Additional helpful details

TheAxelander commented 4 months ago

Can confirm this. I need to check this the next days.

In the meantime if you want to use 1.7 image or 1.7.1, you need to change the port mapping to something like 8080:80 as this has been changed in the latest .NET version.

TheAxelander commented 4 months ago

First root cause analysis:

For some reason the Docker image doesn't has the required sqlite3 library. Non-Docker deployment works, so the issue should be somewhere in the new aspnet:8.0-alpine Docker image

TheAxelander commented 4 months ago

Reverting back to aspnet:8.0 default image seems to fix the issue. Docker image axelander/openbudgeteer:dev works again with SQLite

TheAxelander commented 4 months ago

Should be fixed now with latest release