Can't running in docker
Opened this issue · 0 comments
nmuxiang commented
I try to use postgres and mariadb in compose.yaml, but none of them can work.
This is my compose.yaml with mariadb:
and when I'm login with username and password of database, I got 500 Internal error. the log of container:
gnucash | [2024-11-12 05:19:55 +0000] [1] [INFO] Starting gunicorn 23.0.0
gnucash | [2024-11-12 05:19:55 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
gnucash | [2024-11-12 05:19:55 +0000] [1] [INFO] Using worker: sync
gnucash | [2024-11-12 05:19:55 +0000] [7] [INFO] Booting worker with pid: 7
gnucash | /usr/local/lib/python3.11/site-packages/tzlocal/unix.py:193: UserWarning: Can not find any timezone configuration, defaulting to UTC.
gnucash | warnings.warn("Can not find any timezone configuration, defaulting to UTC.")
gnucash | /srv/encrypted_session/__init__.py:42: SyntaxWarning: "is not" with a literal. Did you mean "!="?
gnucash | if (len (itup) is not 4):
gnucash | [2024-11-12 05:20:20,671] ERROR in app: Exception on /auth/login [POST]
gnucash | Traceback (most recent call last):
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2529, in wsgi_app
gnucash | response = self.full_dispatch_request()
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1825, in full_dispatch_request
gnucash | rv = self.handle_user_exception(e)
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1823, in full_dispatch_request
gnucash | rv = self.dispatch_request()
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1799, in dispatch_request
gnucash | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/srv/gnucash_web/auth.py", line 72, in login
gnucash | authenticate(request.form['username'], request.form['password'])
gnucash | File "/srv/gnucash_web/auth.py", line 31, in authenticate
gnucash | with open_book(uri_conn=app.config.DB_URI(username, password),
gnucash | File "/usr/local/lib/python3.11/contextlib.py", line 137, in __enter__
gnucash | return next(self.gen)
gnucash | ^^^^^^^^^^^^^^
gnucash | File "/srv/gnucash_web/utils/gnucash.py", line 66, in open_book
gnucash | with piecash.open_book(*args, **kwargs) as book:
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/piecash/core/session.py", line 408, in open_book
gnucash | if check_exists and not database_exists(uri_conn):
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy_utils/functions/database.py", line 495, in database_exists
gnucash | engine = sa.create_engine(url)
gnucash | ^^^^^^^^^^^^^^^^^^^^^
gnucash | File "<string>", line 2, in create_engine
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 375, in warned
gnucash | return fn(*args, **kwargs)
gnucash | ^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/create.py", line 544, in create_engine
gnucash | dbapi = dialect_cls.dbapi(**dbapi_args)
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 150, in dbapi
gnucash | return __import__("MySQLdb")
gnucash | ^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/MySQLdb/__init__.py", line 17, in <module>
gnucash | from . import _mysql
gnucash | ImportError: Error loading shared library libmariadb.so.3: No such file or directory (needed by /usr/local/lib/python3.11/site-packages/MySQLdb/_mysql.cpython-311-x86_64-linux-musl.so)
END OF LINE
When I use postgres, the compose.yaml:
When I'm login, I got same 500 Internal error , and the log of container :
gnucash | [2024-11-12 05:33:28 +0000] [1] [INFO] Starting gunicorn 23.0.0
gnucash | [2024-11-12 05:33:28 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
gnucash | [2024-11-12 05:33:28 +0000] [1] [INFO] Using worker: sync
gnucash | [2024-11-12 05:33:28 +0000] [7] [INFO] Booting worker with pid: 7
gnucash | /usr/local/lib/python3.11/site-packages/tzlocal/unix.py:193: UserWarning: Can not find any timezone configuration, defaulting to UTC.
gnucash | warnings.warn("Can not find any timezone configuration, defaulting to UTC.")
gnucash | /srv/encrypted_session/__init__.py:42: SyntaxWarning: "is not" with a literal. Did you mean "!="?
gnucash | if (len (itup) is not 4):
gnucash | [2024-11-12 05:33:51,230] ERROR in app: Exception on /auth/login [POST]
gnucash | Traceback (most recent call last):
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2529, in wsgi_app
gnucash | response = self.full_dispatch_request()
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1825, in full_dispatch_request
gnucash | rv = self.handle_user_exception(e)
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1823, in full_dispatch_request
gnucash | rv = self.dispatch_request()
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1799, in dispatch_request
gnucash | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/srv/gnucash_web/auth.py", line 72, in login
gnucash | authenticate(request.form['username'], request.form['password'])
gnucash | File "/srv/gnucash_web/auth.py", line 31, in authenticate
gnucash | with open_book(uri_conn=app.config.DB_URI(username, password),
gnucash | File "/usr/local/lib/python3.11/contextlib.py", line 137, in __enter__
gnucash | return next(self.gen)
gnucash | ^^^^^^^^^^^^^^
gnucash | File "/srv/gnucash_web/utils/gnucash.py", line 66, in open_book
gnucash | with piecash.open_book(*args, **kwargs) as book:
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/piecash/core/session.py", line 408, in open_book
gnucash | if check_exists and not database_exists(uri_conn):
gnucash | ^^^^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy_utils/functions/database.py", line 479, in database_exists
gnucash | dialect_name = url.get_dialect().name
gnucash | ^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/url.py", line 680, in get_dialect
gnucash | entrypoint = self._get_entrypoint()
gnucash | ^^^^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/url.py", line 662, in _get_entrypoint
gnucash | cls = registry.load(name)
gnucash | ^^^^^^^^^^^^^^^^^^^
gnucash | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 343, in load
gnucash | raise exc.NoSuchModuleError(
gnucash | sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgres
END OF LINE
I don't know where is wrong, could anyone tell me? Thanks!