gpt4 book ai didi

python - Dockerfile 无法复制 & Docker-compose 卷不与容器同步

转载 作者:行者123 更新时间:2023-12-02 19:22:16 25 4
gpt4 key购买 nike

我正在使用 Docker windows 桌面客户端并尝试构建一个 Flask python 容器。 dockerfile 复制 requirements.txtflask-script.py文件到 python 容器中并设置它。

|-root directory (this is where the powershell commands are run from)
|-docker-compose.yml
|-src
| └── Dockerfile
| ├── flask-script.py
| ├── requirements.txt

Docker-compose.yml:
version: '3'

services:
flask-service:
build: ./src
volumes:
- ./src:/usr/src/app
ports:
- 8080:80

src/Dockerfile:
FROM python:3

COPY . /usr/src/app

RUN pip install --no-cache-dir -r requirements.txt

CMD [ "python", "./flask-script.py" ]

运行 docker-compose up给出以下错误:
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

但是如果我将 dockerfile 更改为:
FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./flask-script.py" ]

它确实有效,但是在 docker-compose up 之后docker-compose 中指定的卷不与容器同步。如果我对 flask-script.py 进行任何更改文件容器看不到它们。

我究竟做错了什么?

最佳答案

添加 WORKDIR 时它确实有效因为您在该目录中有所有文件。

但是,在您的第一个 Dockerfile 中,您将所有内容复制到 /usr/src/app ,但您不会将工作目录更改为该目录,因此 requirements.txt无法访问,因为它位于 /root/requirements.txt

关于python - Dockerfile 无法复制 & Docker-compose 卷不与容器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58797375/

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