Traceback (most recent call last):
File "/repo/backend/./launch_db_init.py", line 7, in <module>
from beets.ui import _open_library
File "/usr/local/lib/python3.11/site-packages/beets/ui/__init__.py", line 858, in <module>
indent_str, left, right, separator=" -> ", max_width=term_width()
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/beets/ui/__init__.py", line 704, in term_width
fallback = config["ui"]["terminal_width"].get(int)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 303, in get
return templates.as_template(template).value(self, template)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/templates.py", line 47, in value
value, _ = view.first()
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 79, in first
return util.iter_first(pairs)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/util.py", line 21, in iter_first
return next(it)
^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 448, in resolve
for collection, source in self.parent.resolve():
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 448, in resolve
for collection, source in self.parent.resolve():
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 696, in resolve
self.read()
File "/usr/local/lib/python3.11/site-packages/beets/__init__.py", line 45, in read
super().read(user, defaults)
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 691, in read
super().read(user, defaults)
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 548, in read
self._add_user_source()
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 527, in _add_user_source
filename = self.user_config_path()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 520, in user_config_path
return os.path.join(self.config_dir(), CONFIG_FILENAME)
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 585, in config_dir
os.makedirs(appdir)
File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/config/beets'
�[32mINFO�[0m: Uvicorn running on �[1mhttp://0.0.0.0:5001�[0m (Press CTRL+C to quit)
�[32mINFO�[0m: Started parent process [�[36m�[1m44�[0m]
Traceback (most recent call last):
File "/repo/backend/./launch_watchdog_worker.py", line 10, in <module>
from beets_flask.watchdog.inbox import register_inboxes
File "/repo/backend/beets_flask/watchdog/inbox.py", line 10, in <module>
from beets_flask import invoker
File "/repo/backend/beets_flask/invoker/__init__.py", line 1, in <module>
from .enqueue import EnqueueKind, enqueue, enqueue_delete_items
File "/repo/backend/beets_flask/invoker/enqueue.py", line 14, in <module>
from beets.ui import _open_library
File "/usr/local/lib/python3.11/site-packages/beets/ui/__init__.py", line 858, in <module>
indent_str, left, right, separator=" -> ", max_width=term_width()
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/beets/ui/__init__.py", line 704, in term_width
fallback = config["ui"]["terminal_width"].get(int)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 303, in get
return templates.as_template(template).value(self, template)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/templates.py", line 47, in value
value, _ = view.first()
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 79, in first
return util.iter_first(pairs)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/util.py", line 21, in iter_first
return next(it)
^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 448, in resolve
for collection, source in self.parent.resolve():
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 448, in resolve
for collection, source in self.parent.resolve():
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 696, in resolve
self.read()
File "/usr/local/lib/python3.11/site-packages/beets/__init__.py", line 45, in read
super().read(user, defaults)
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 691, in read
super().read(user, defaults)
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 548, in read
self._add_user_source()
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 527, in _add_user_source
filename = self.user_config_path()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 520, in user_config_path
return os.path.join(self.config_dir(), CONFIG_FILENAME)
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/confuse/core.py", line 585, in config_dir
os.makedirs(appdir)
File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/config/beets'
Describe the bug
Was working through a problem with the application not loading the web page, and started looking at logging. Immediately saw this:
[Entrypoint] Fixing permissions as 'root' with UID 0 and GID 0
[Entrypoint] Setting beetle user to 0:0
[Entrypoint] User beetle now has uid=1000(beetle) gid=1000(beetle) groups=1000(beetle),1000(beetle)
[Entrypoint] Done fixing permissions
[Entrypoint] Running as 'beetle' with UID 1000 and GID 1000
[Entrypoint] Current working directory: /repo
[Entrypoint] Version info:
[Entrypoint] Backend: 1.2.1
[Entrypoint] Frontend: 1.2.1
[Entrypoint] Mode: prod
Traceback (most recent call last):
Expected behavior
To honor configuration deployed by user, and not modify permissions once the container starts. Looks like/similar to a previous bug report: #234
To Reproduce
Deployed via docker CLI:
docker run -d -p 5001:5001
-e TZ=America/New_York
-e USER_ID=0
-e GROUP_ID=0
-v /home/user/beets-flask/config/:/config
-v /media/user/:/music_path/inbox/
-v /user/music/:/music_path/clean/
--name beets-flask
pspitzner/beets-flask:stable
Technical Details