ImportError: cannot import name 'soft_unicode' from 'markupsafe'
When building the current tree of this project, and running it through Compose with the below changes, an error occurs that stops the LiberaForms container from starting.
Stacktrace
liberaforms-app | [2022-03-29 23:06:22 +0000] [1] [INFO] Starting gunicorn 20.1.0
liberaforms-app | [2022-03-29 23:06:22 +0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
liberaforms-app | [2022-03-29 23:06:22 +0000] [1] [INFO] Using worker: sync
liberaforms-app | [2022-03-29 23:06:22 +0000] [9] [INFO] Booting worker with pid: 9
liberaforms-app | [2022-03-29 23:06:22 +0000] [10] [INFO] Booting worker with pid: 10
liberaforms-app | [2022-03-29 23:06:22 +0000] [9] [ERROR] Exception in worker process
liberaforms-app | Traceback (most recent call last):
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
liberaforms-app | worker.init_process()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
liberaforms-app | self.load_wsgi()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
liberaforms-app | self.wsgi = self.app.wsgi()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
liberaforms-app | self.callable = self.load()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
liberaforms-app | return self.load_wsgiapp()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
liberaforms-app | return util.import_app(self.app_uri)
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
liberaforms-app | mod = importlib.import_module(module)
liberaforms-app | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
liberaforms-app | return _bootstrap._gcd_import(name[level:], package, level)
liberaforms-app | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
liberaforms-app | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
liberaforms-app | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
liberaforms-app | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
liberaforms-app | File "<frozen importlib._bootstrap_external>", line 843, in exec_module
liberaforms-app | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
liberaforms-app | File "/app/wsgi.py", line 9, in <module>
liberaforms-app | from flask_migrate import Migrate
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/flask_migrate/__init__.py", line 6, in <module>
liberaforms-app | from flask import current_app
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/flask/__init__.py", line 14, in <module>
liberaforms-app | from jinja2 import escape
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/__init__.py", line 12, in <module>
liberaforms-app | from .environment import Environment
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 25, in <module>
liberaforms-app | from .defaults import BLOCK_END_STRING
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/defaults.py", line 3, in <module>
liberaforms-app | from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/filters.py", line 13, in <module>
liberaforms-app | from markupsafe import soft_unicode
liberaforms-app | ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.8/site-packages/markupsafe/__init__.py)
liberaforms-app | [2022-03-29 23:06:22 +0000] [9] [INFO] Worker exiting (pid: 9)
liberaforms-app | [2022-03-29 23:06:22 +0000] [10] [ERROR] Exception in worker process
liberaforms-app | Traceback (most recent call last):
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
liberaforms-app | worker.init_process()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
liberaforms-app | self.load_wsgi()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
liberaforms-app | self.wsgi = self.app.wsgi()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
liberaforms-app | self.callable = self.load()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
liberaforms-app | return self.load_wsgiapp()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
liberaforms-app | return util.import_app(self.app_uri)
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
liberaforms-app | mod = importlib.import_module(module)
liberaforms-app | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
liberaforms-app | return _bootstrap._gcd_import(name[level:], package, level)
liberaforms-app | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
liberaforms-app | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
liberaforms-app | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
liberaforms-app | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
liberaforms-app | File "<frozen importlib._bootstrap_external>", line 843, in exec_module
liberaforms-app | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
liberaforms-app | File "/app/wsgi.py", line 9, in <module>
liberaforms-app | from flask_migrate import Migrate
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/flask_migrate/__init__.py", line 6, in <module>
liberaforms-app | from flask import current_app
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/flask/__init__.py", line 14, in <module>
liberaforms-app | from jinja2 import escape
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/__init__.py", line 12, in <module>
liberaforms-app | from .environment import Environment
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 25, in <module>
liberaforms-app | from .defaults import BLOCK_END_STRING
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/defaults.py", line 3, in <module>
liberaforms-app | from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/filters.py", line 13, in <module>
liberaforms-app | from markupsafe import soft_unicode
liberaforms-app | ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.8/site-packages/markupsafe/__init__.py)
liberaforms-app | [2022-03-29 23:06:22 +0000] [10] [INFO] Worker exiting (pid: 10)
liberaforms-app | [2022-03-29 23:06:22 +0000] [11] [INFO] Booting worker with pid: 11
liberaforms-app | [2022-03-29 23:06:22 +0000] [1] [WARNING] Worker with pid 10 was terminated due to signal 15
liberaforms-app | [2022-03-29 23:06:22 +0000] [11] [ERROR] Exception in worker process
liberaforms-app | Traceback (most recent call last):
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
liberaforms-app | worker.init_process()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
liberaforms-app | self.load_wsgi()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
liberaforms-app | self.wsgi = self.app.wsgi()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
liberaforms-app | self.callable = self.load()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
liberaforms-app | return self.load_wsgiapp()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
liberaforms-app | return util.import_app(self.app_uri)
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
liberaforms-app | mod = importlib.import_module(module)
liberaforms-app | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
liberaforms-app | return _bootstrap._gcd_import(name[level:], package, level)
liberaforms-app | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
liberaforms-app | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
liberaforms-app | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
liberaforms-app | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
liberaforms-app | File "<frozen importlib._bootstrap_external>", line 843, in exec_module
liberaforms-app | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
liberaforms-app | File "/app/wsgi.py", line 9, in <module>
liberaforms-app | from flask_migrate import Migrate
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/flask_migrate/__init__.py", line 6, in <module>
liberaforms-app | from flask import current_app
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/flask/__init__.py", line 14, in <module>
liberaforms-app | from jinja2 import escape
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/__init__.py", line 12, in <module>
liberaforms-app | from .environment import Environment
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 25, in <module>
liberaforms-app | from .defaults import BLOCK_END_STRING
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/defaults.py", line 3, in <module>
liberaforms-app | from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/jinja2/filters.py", line 13, in <module>
liberaforms-app | from markupsafe import soft_unicode
liberaforms-app | ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.8/site-packages/markupsafe/__init__.py)
liberaforms-app | [2022-03-29 23:06:22 +0000] [11] [INFO] Worker exiting (pid: 11)
liberaforms-app | Traceback (most recent call last):
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 202, in run
liberaforms-app | self.manage_workers()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 551, in manage_workers
liberaforms-app | self.spawn_workers()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 623, in spawn_workers
liberaforms-app | time.sleep(0.1 * random.random())
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
liberaforms-app | self.reap_workers()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
liberaforms-app | raise HaltServer(reason, self.WORKER_BOOT_ERROR)
liberaforms-app | gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
liberaforms-app |
liberaforms-app | During handling of the above exception, another exception occurred:
liberaforms-app |
liberaforms-app | Traceback (most recent call last):
liberaforms-app | File "/usr/local/bin/gunicorn", line 8, in <module>
liberaforms-app | sys.exit(run())
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
liberaforms-app | WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 231, in run
liberaforms-app | super().run()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 72, in run
liberaforms-app | Arbiter(self).run()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 229, in run
liberaforms-app | self.halt(reason=inst.reason, exit_status=inst.exit_status)
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 342, in halt
liberaforms-app | self.stop()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 393, in stop
liberaforms-app | time.sleep(0.1)
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
liberaforms-app | self.reap_workers()
liberaforms-app | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
liberaforms-app | raise HaltServer(reason, self.WORKER_BOOT_ERROR)
liberaforms-app | gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
8c8
< test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "${POSTGRES_ROOT_USER}"]
---
> test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "${DB_USER}"]
15,16c15,17
< POSTGRES_USER: ${POSTGRES_ROOT_USER}
< POSTGRES_PASSWORD: ${POSTGRES_ROOT_PASSWORD}
---
> POSTGRES_USER: ${DB_USER}
> POSTGRES_PASSWORD: ${DB_PASSWORD}
> POSTGRES_DB: ${DB_NAME}
23c24,25
< image: liberaforms-app:${VERSION}
---
> # image: liberaforms-app:${VERSION}
> build: .