dockercompose,PermissionError:[Errno 13]权限被拒绝:'/管理.py'

2024-10-01 17:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

在做了很多研究之后,我没有找到对我有用的解决办法。 我试图在docker composer中运行命令,用django admin启动项目

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

每次我收到错误:

^{pr2}$

我的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

我的码头工人-合成.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] Permission denied: '/code/manage.py'

Ubuntu版本:

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

Tags: djangodockerrunpytxtappmanageadmin
2条回答

在您的dockerfile中,您指向的是一个新用户dockuser。在

RUN adduser -D dockuser
USER dockuser

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

你也可以

  • 删除您创建并指向的上述行 dockuser。在

或者

  • 在dockerfile中使用chownchmod命令为用户dockuser提供适当的权限/管理.py文件。在

我也回答过类似的问题。在

将此添加到Dockerfile之后的Dockerfile

RUN chown dockuser:dockuser -R /app/

如果您已经挂载了这些文件,为什么还要COPY?在

如果您想保留挂载,您需要在HOST系统上的文件夹中添加rw个人,而不是{}上

相关问题 更多 >

    热门问题