Skip to content

permissions set in CLI configuration, being changed. #311

@ionv3n0m

Description

@ionv3n0m

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

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'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions