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

使用Docker Compose部署Django+PostgreSQL时找不到manage.py文件

Docker Compose部署Django+PostgreSQL:找不到manage.py错误解决

问题核心

执行docker compose run web python manage.py startapp aplicacion或docker compose run web django-admin startproject proyecto时,容器提示/code/manage.py不存在,但本地明明有这个文件——本质是本地文件没同步到容器的/code目录,要么是卷挂载配置错误,要么是工作目录设置不对。

逐一排查修复

1. 检查docker-compose.yml的卷映射

确保web服务的volumes配置把本地当前目录映射到容器的/code:

services:
  web:
    build: .
    volumes:
      - .:/code  # 这条必须有,本地当前目录同步到容器/code
    # 其他配置(ports、depends_on等)不变

如果这里漏写或者路径写错,容器里的/code就是空的,自然找不到manage.py。

2. 检查Dockerfile的工作目录

Dockerfile必须明确设置工作目录为/code,否则执行命令时会在默认目录找文件:

FROM python:3.11-slim
WORKDIR /code  # 关键,后续所有命令都在/code下执行
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .

没加这条的话,哪怕卷挂载对了,执行python manage.py时也会在根目录找,肯定找不到。

3. 确认本地manage.py的位置

你的manage.py必须和docker-compose.yml在同一个文件夹里,不然卷映射.:/code会把上级目录同步进去,容器的/code里就没有这个文件。

4. 注意命令执行顺序

如果是刚初始化项目,本地还没有manage.py,得先在容器里创建项目并同步到本地:

  • 先执行:docker compose run web django-admin startproject proyecto . (末尾的.不能丢,确保项目文件生成在容器的/code,也就是本地当前目录)
  • 等本地生成manage.py后,再执行docker compose run web python manage.py startapp aplicacion就正常了。

快速验证

执行这条命令查看容器/code目录的文件:

docker compose run web ls -l /code

如果能看到manage.py,说明配置没问题,重新执行原命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:05:18