gpt4 book ai didi

python - Docker compose - 找不到 manage.py 文件

转载 作者:行者123 更新时间:2023-12-02 18:51:44 25 4
gpt4 key购买 nike

我想用 docker-compose 创建 2 个 Docker 容器。 1 个用于 DB(Mongo),1 个用于 Web(Django)。
这是我的文件

docker-compose.yml

version: '3'
services:
db:
image: mongo
command: mongod
web:
build: code/
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db

代码/Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY cleverInvestWeb/ /code/

在目录 代码/cleverInvestWeb/是我来自 django 的 manage.py 文件。

当我运行时 docker-compose up它向我抛出以下错误:
web_1  | python: can't open file 'manage.py': [Errno 2] No such file or directory

当我使用 docker exec -it dockerdiplom_web bash 通过 Docker 本身启动容器时并做一个 ls那里显示了 manage.py文件。

你知道为什么 docker-compose 在启动时找不到我的文件吗?

最佳答案

Dockerfile 和 docker-compose 中的目录结构似乎令人困惑。另一件奇怪的事情是您可以在docker exec 之后看到文件。 .

您将代码复制到 COPY cleverInvestWeb/ /code/在 Dockerfile 中,然后将 Docker-compose 中的卷挂载到 .:/code所以一切都将覆盖在 /code 上的现有图像中地点。

我假设你的 python 文件放在本地目录中 cleverInvestWeb所以 docker-compose 启动它会覆盖现有的图像代码,你的文件更新位置将是 code/cleverInvestWeb/manage.py/code/manage.py
调试:

  • 删除 docker-compose 中的安装并检查它是否有效
  • command: tail -f /dev/null在 docker-compose 中设置此命令并使用 docker exec 验证您的文件位置
  • 关于python - Docker compose - 找不到 manage.py 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745394/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com