Docker Community Forums

Share and learn in the Docker community.

PermissionError: [Errno 13] Permission denied: '/code/manage.py'


(Rajagola) #1

I was trying to run django app on docker container. Followed steps mentioned at https://docs.docker.com/compose/django/ But after running the command docker-compose run web django-admin.py startproject composeexample . I facing error PermissionError: [Errno 13] Permission denied: ‘/code/manage.py’ I’m using centos 7. please help

[root@localhost docker-django]# docker-compose run web django-admin.py startproject composeexample .
Traceback (most recent call last):
File “/usr/local/bin/django-admin.py”, line 5, in
management.execute_from_command_line()
File “/usr/local/lib/python3.4/site-packages/django/core/management/init.py”, line 338, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.4/site-packages/django/core/management/init.py”, line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.4/site-packages/django/core/management/base.py”, line 393, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.4/site-packages/django/core/management/base.py”, line 444, in execute
output = self.handle(*args, **options)
File “/usr/local/lib/python3.4/site-packages/django/core/management/commands/startproject.py”, line 33, in handle
super(Command, self).handle(‘project’, project_name, target, **options)
File “/usr/local/lib/python3.4/site-packages/django/core/management/templates.py”, line 154, in handle
with open(new_path, ‘wb’) as new_file:
PermissionError: [Errno 13] Permission denied: ‘/code/manage.py’


(Ranjandas) #2

Hi,

Possibly this is because you have SELinux enabled on your CentOS 7. You can make this work in two ways.

  • Set SELinux to Disabled/Permissive mode. You can try setenforce 0 and try once again to make sure that SELinux is the one who is causing this problem.

  • Now if you don’t want to disable SELinux append a :Z to the volume declaration so that Docker will fix the SELinux context of the volume directory

Eg: docker run -d -v /myvol:/volmount:Z busybox

So in your case add :Z to the volume declaration in compose.yml.

Regards


(Rajagola) #3

Thanks a lot. It worked after adding :Z to volumes in yml file.