Vir*_*ual 3 python docker docker-compose
我想用 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/
在目录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 本身启动容器docker exec -it dockerdiplom_web bash并在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
调试:
command: tail -f /dev/null 在 docker-compose 中设置此命令并使用验证您的文件位置 docker exec| 归档时间: | 
 | 
| 查看次数: | 3530 次 | 
| 最近记录: |