You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器无法找到manage.py?DRF项目容器化执行命令报错

解决Docker容器中manage.py: not found的问题

我一眼就揪出问题所在了!问题出在你的docker-compose.yml里web服务的启动命令上。

先看你写的这段命令:

command: >
  sh -c " python manage.py makemigrations && python manage.py migrate &&
       manage.py runserver 0.0.0.0:5000"

前面执行数据库迁移的时候,你都规规矩矩用了python manage.py来调用脚本,但最后启动服务器时,直接写成了manage.py runserver——这就是报错的根源!

在容器环境里,直接输入manage.py runserver,系统不知道该用什么解释器来执行这个文件,哪怕文件明明存在,也会抛出"not found"的误导性报错(实际不是找不到文件,是找不到正确的执行方式)。

两种简单的解决办法,任选其一即可:

方法一:修改启动命令(最直接省心)

把最后一行启动服务器的命令,改成和前面迁移命令一样的写法,用python解释器调用:

command: >
  sh -c " python manage.py makemigrations && python manage.py migrate &&
       python manage.py runserver 0.0.0.0:5000"

方法二:给manage.py添加可执行权限(适合不想每次写python的场景)

  1. 在本地项目的manage.py文件最顶部,加上一行shebang声明:
#!/usr/bin/env python3
  1. 在Dockerfile里,复制完项目文件后,添加一行给文件加可执行权限的命令:
COPY . .
RUN chmod +x manage.py  # 新增这一行

之后你就可以用./manage.py runserver的方式启动服务了(注意要加./),不过还是更推荐方法一,不用修改代码和Dockerfile,一步到位。

补充一句:你进入容器后能看到manage.py,但如果直接输入manage.py runserver也会报同样的错,必须用python manage.py或者加了权限后的./manage.py才行——这就是为什么文件明明存在却报错的核心原因。

内容的提问来源于stack exchange,提问作者Asif333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:25:43