docker-compose,PermissionError:[Errno 13]权限被拒绝:'/manage.py' [英] docker-compose , PermissionError: [Errno 13] Permission denied: '/manage.py'

查看:1009
本文介绍了docker-compose,PermissionError:[Errno 13]权限被拒绝:'/manage.py'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

经过大量研究,我发现没有任何解决方案对我有用。
我试图在docker-composer中运行命令以使用django-admin启动项目

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 ."

每次我遇到错误:

    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'

我的docker文件

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

我的docker-compose.yml

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"

我已应用解决方案中提出了建议,但没有成功
[ PermissionError:[Errno 13]权限被拒绝:'/ code / manage.py'

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

Ubuntu版本:

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


推荐答案

在您的 dockerfile 中指向新用户 dockuser

RUN adduser -D dockuser
USER dockuser

因此,您的容器将以用户 dockuser开头似乎没有运行 /manage.py 的适当权限。

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

您可以


  • 删除上面提到的行e您创建并指向
    dockuser

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

OR


  • 使用 chown向用户 dockuser 提供适当的权限 chmod 命令。

  • 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.

这篇关于docker-compose,PermissionError:[Errno 13]权限被拒绝:'/manage.py'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆