我正在使用Docker Windows桌面客户端并尝试构建Flask python容器。dockerfile将文件复制requirements.txt
并flask-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
,但是您没有将workdir更改到该目录,因此,由于该目录requirements.txt
位于其中,因此无法访问/root/requirements.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句