Python 错误:服务';破折号';未能生成:复制失败:stat/var/lib/docker/tmp/docker-builder134733065/app.py:在Windows 10中没有这样的文件或目录
My docker-compose.yml文件:Python 错误:服务';破折号';未能生成:复制失败:stat/var/lib/docker/tmp/docker-builder134733065/app.py:在Windows 10中没有这样的文件或目录,python,docker,docker-compose,Python,Docker,Docker Compose,My docker-compose.yml文件: version: '3' services: dash: build: ./docker environment: - COMPOSE_CONVERT_WINDOWS_PATHS=false ports: - "5000:5000" volumes: - c:/Users:/data Dockerfile 在Dockerfile中执行简单复制命令会在文件位于文件夹中时引
version: '3'
services:
dash:
build: ./docker
environment:
- COMPOSE_CONVERT_WINDOWS_PATHS=false
ports:
- "5000:5000"
volumes:
- c:/Users:/data
- Dockerfile
- docker
- Dockerfile
- requirements.txt
- app
- app.py
- docker-compose.yml
使用
复制
和添加
,您只能使用与Dockerfile
位于同一文件夹或子文件夹中的源文件:
复制遵循以下规则:
- 路径必须在构建的上下文中;您不能复制../something/something,因为docker构建的第一步 是将上下文目录(和子目录)发送给docker 守护进程
app.py
位于docker
的同级文件夹中,这是构建上下文的基本目录。您需要将app.py
移动到docker
文件夹中的某个位置。例如:
- docker
- Dockerfile
- requirements.txt
- app
- app.py
- docker-compose.yml
并调整Dockerfile:
WORKDIR /data
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY app/app.py ./
CMD [ "python", "./app.py" ]
出现错误是因为主机上的docker生成上下文目录
/docker
不包含app.py
确保/docker
文件夹包含app.py
文件
如果知道包含生成上下文和app.py文件的正确目录,请将该目录指定为生成上下文
build: /path/to/build/context
有关构建上下文的更多信息
要知道什么是docker构建上下文,请选中
希望这有帮助
更新:
检查文件夹结构后,似乎app/app.py
不在作为构建上下文的/docker
目录中
build: /path/to/build/context
将应用程序目录放入docker文件夹,并将copy命令更改为
copy app/app.py./
。同时将CMD更改为CMD[“python”,“/data/app.py”]
我已在问题中添加了我的文件夹结构,请检查。我已移动到docker文件夹,但无法工作,如果您docker将exec[service name]sh
组合到容器中并执行ls.
,app.py
是否出现?破折号在您的案例中我已移动到docker文件夹,但不在@mchawreChange@mchawrecd将此CMD[“python”,“/app.py”]
更改为此CMD[“python”,“/data/app.py”]
。运行后通知我。相同错误:dash|1 | python:无法打开文件'/data/app.py':[Errno 2]没有这样的文件或目录mgmt-dash|u|1退出,代码为2
将复制命令更改为复制app/app.py/data/
。构建并运行它。在您进行任何代码更改之后。您需要构建docker compose build
,然后docker compose up