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

用户名

我正在使用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文件进行了任何更改,则容器将看不到它们。

我究竟做错了什么?

y0

添加时,它确实起作用,WORKDIR因为该目录中包含所有文件。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章