При выполнении python manage.py runserver - выходит ошибка PermissionError: [Errno 1] Operation not permitted: '/usr/local/bin/python'

Рейтинг: 0Ответов: 1Опубликовано: 04.07.2023

В последнее время перестала выполняться команда python manage.py runserver в докере (ошибка ниже). До этого всё работало. На резервном докере всё работает (образ один и тот же для обоих докеров - ничего не менял). В чём может быть причина и как решить проблему?

django_name     | No changes detected
django_name     | Operations to perform:
django_name     |   Apply all migrations: admin, auth, contenttypes, eouk_main, sessions
django_name     | Running migrations:
django_name     |   No migrations to apply.
django_name     | Traceback (most recent call last):
django_name     |   File "/django_backend/manage.py", line 22, in <module>
django_name     |     main()
django_name     |   File "/django_backend/manage.py", line 18, in main
django_name     |     execute_from_command_line(sys.argv)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
django_name     |     utility.execute()
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
django_name     |     self.fetch_command(subcommand).run_from_argv(self.argv)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv
django_name     |     self.execute(*args, **cmd_options)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 61, in execute
django_name     |     super().execute(*args, **options)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute
django_name     |     output = self.handle(*args, **options)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 96, in handle
django_name     |     self.run(**options)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 103, in run
django_name     |     autoreload.run_with_reloader(self.inner_run, **options)
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 639, in run_with_reloader
django_name     |     exit_code = restart_with_reloader()
django_name     |   File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 258, in restart_with_reloader
django_name     |     p = subprocess.run(args, env=new_environ, close_fds=False)
django_name     |   File "/usr/local/lib/python3.9/subprocess.py", line 505, in run
django_name     |     with Popen(*popenargs, **kwargs) as process:
django_name     |   File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__
django_name     |     self._execute_child(args, executable, preexec_fn, close_fds,
django_name     |   File "/usr/local/lib/python3.9/subprocess.py", line 1725, in _execute_child
django_name     |     self._posix_spawn(args, executable, env, restore_signals,
django_name     |   File "/usr/local/lib/python3.9/subprocess.py", line 1670, in _posix_spawn
django_name     |     self.pid = os.posix_spawn(executable, args, env, **kwargs)
django_name     | PermissionError: [Errno 1] Operation not permitted: '/usr/local/bin/python'
django_name exited with code 1

Ответы

▲ 0Принят

В общем мы разобрались в чём причины и устранили ошибку. нужно либо контейнер (образ) запускать с ключом --privileged (ниже):

docker run -it --privileged django_backend_django_test3 bash

либо в файле docker-compose.yml указать этот параметр (ниже):

  django_test3:
    image: django_backend_django_test3
    restart: always
    privileged: true
    build:

После этого образ запустился как нужно.