Docker-Compose启动Django服务报错:找不到manage.py文件
Django容器启动报错:找不到manage.py文件
问题原因
你的Dockerfile仅复制了requirements.txt,未将本地Django项目代码复制到容器内部。容器的/service工作目录下没有manage.py及其他项目文件,因此执行启动命令时会提示文件不存在。
解决方案
1. 修改Dockerfile,添加项目代码复制步骤
更新后的Dockerfile如下:
FROM python:3.8-alpine3.16 COPY requirements.txt /temp/requirements.txt WORKDIR /service # 新增:将本地项目所有文件复制到容器工作目录 COPY . . EXPOSE 8000 RUN pip install -r /temp/requirements.txt RUN adduser --disabled-password service-user USER service-user
关键修改:添加COPY . .,将本地项目根目录的所有文件(除.dockerignore排除的内容)复制到容器的/service目录下。
2. 优化docker-compose启动命令(可选但推荐)
默认runserver仅绑定容器内部的127.0.0.1,外部无法访问。修改docker-compose.yml的command为:
command: python3 manage.py runserver 0.0.0.0:8000
3. 创建.dockerignore文件(可选)
在项目根目录创建.dockerignore,避免复制不必要的文件到容器,减少镜像体积:
venv/ .git/ __pycache__/ .env .dockerignore Dockerfile docker-compose.yml
4. 重新构建并启动容器
执行以下命令:
docker-compose down docker-compose up --build
内容的提问来源于stack exchange,提问作者bladehearme
相关产品推荐
相关产品推荐

