docker-compose , PermissionError: [Errno 13] Permission denied: '/manage.py'

自闭症网瘾萝莉.ら 提交于 2020-07-20 11:11:35

问题


After doing many research I didn't found any solution worked for me. I am trying to run command in docker-composer to start project with django-admin

docker-compose run app sh -c "django-admin startproject app ."

Every time I am getting the error:

    Traceback (most recent call last):
  File "/usr/local/bin/django-admin", line 10, in <module>
    sys.exit(execute_from_command_line())
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/startproject.py", line 20, in handle
    super().handle('project', project_name, target, **options)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/templates.py", line 155, in handle
    with open(new_path, 'w', encoding='utf-8') as new_file:
PermissionError: [Errno 13] Permission denied: '/manage.py'

My docker file

FROM python:3.7-alpine
MAINTAINER anubrij chandra

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt /requirements.txt

RUN pip install -r /requirements.txt

RUN mkdir /app
COPY ./app /app



RUN adduser -D dockuser
USER dockuser

My docker-compose.yml

version: "3"

services:
  app:
    build:
      context: .
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: >
      sh -c "python manage.py runserver 0.0.0.0:8000"

I applied solution suggested in but it didn't worked [PermissionError: [Errno 13] Permission denied: '/code/manage.py'

Ubuntu version :

Distributor ID: Ubuntu
Description:    Ubuntu 18.04 LTS
Release:    18.04
Codename:   bionic

回答1:


In your dockerfile, you are pointing to a new user dockuser.

RUN adduser -D dockuser
USER dockuser

Hence your container will start with user dockuser which don't seems to have proper permissions to run /manage.py.

You can either

  • remove the above mentioned lines where you creates and point to dockuser.

OR

  • provide appropriate permission to user dockuser using chown and chmod commands in your dockerfile for /manage.py file.

I have answered such similar question here.




回答2:


add this to your Dockerfile after RUN adduser -D dockuser:

RUN chown dockuser:dockuser -R /app/

and why you COPYthe files if you already mount them ?

if you want to keep the mount , you need to add rw persmission on the folder on the HOST system not on the Container




回答3:


If you're on mac this might work for you.

After 4 days of troubleshooting this error (and other strange errors) I found out that I needed to fix dockers permissions in my file system. To do this go to:

System Preferences -> Security & Privacy -> Privacy tab -> Full Disk Access (on the left, somewhere in the list) -> Click on the + -> Docker application

Terribly frustrating problem to debug, hope it helps.



来源:https://stackoverflow.com/questions/56784492/docker-compose-permissionerror-errno-13-permission-denied-manage-py

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!