Как исправить ошибку mkdir в докеризованном ap на ec2?

У меня есть приложение django, основанное на django-cookiecutter, работающее на aws-ec2. Само приложение создано и работает нормально. Это приложение использует библиотеку django-cities-light. Когда я запускаю docker-compose -f production.yml run --rm django python manage.py cities_light, которая является командой для заполнения базы данных странами/городами, я получаю следующую ошибку:

INFO 2021-11-30 15:17:36,780 cities_light 1 140562076800832 Creating /usr/local/lib/python3.9/site-packages/cities_light/data
Traceback (most recent call last):
  File "/app/manage.py", line 31, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.9/site-packages/cities_light/management/commands/cities_light.py", line 145, in handle
    os.mkdir(DATA_DIR)
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.9/site-packages/cities_light/data'
ERROR: 1

Поскольку '/usr/local/lib/python3.9/site-packages/cities_light/data' находится внутри докера, я очень запутался в том, какие разрешения я должен установить и кому.

Если кто-то может пролить свет, буду очень признателен.

Спасибо!

Убедитесь, что пользователь внутри контейнера имеет достаточное разрешение для '/usr/local/lib/python3.9/site-packages/cities_light/data'.

Если у вас есть non-root пользователь внутри контейнера, убедитесь, что этот пользователь владеет/имеет доступ к папке. Также загляните в this

Спасибо Виноту за предложения. Они были полезны.

Я немного почитал и изменил право собственности на папку на django (пользователь:группа), добавив RUN chown -R django:django /usr/local/lib/python3.9/site-packages/* в файл docker устранил проблему.

Вернуться на верх