Abd*_*UMI 5
问题的根本原因
您的上下文(作为目录)不包括添加的文件。这是主要问题。
细节
有 3 条相互关联的黄金法则:
上下文路径是相对于docker-pose.yaml
ADD (or
COPY`) 第一个参数是相对于该上下文的路径
ADD (or
COPY`) 第一个参数是必须在上下文文件夹内的路径(无论是直接还是在上下文的子目录中)
让我们应用这 3 条规则:
你docker-pose.yaml
在里面./project/docker
,你的上下文是./
。
=> 你的上下文是./project/docker
ADD ./requirements.txt ...
& 上下文./project/docker
。
=> 表示您的requirements.txt
路径是./project/docker/requirements.txt
错误的,因为它../../requirements.txt
相对于上下文存在(./project/docker
)
现在假设您通过放置 requirements.txt 的正确路径来解决问题:
ADD ../../requirements.txt .
最后一个修复将不起作用,因为即使我们放置了该 ADDed 文件的相对路径,该文件也不在 context 中。
解决方案
必须更改上下文以包含所有已复制/已添加的文件。 复制/添加的文件路径必须保持相对于新上下文。项目/码头工人/码头工人-pose.yaml
services:
api-service-track-1:
build:
context: ../../ # context must include `requirements.txt`
dockerfile: ./project/docker/Dockerfile # must be relative to context
项目/码头工人/Dockerfile
# ./ is Relative to the context
ADD ./requirements.txt ...
更多推荐
上下文,中找,文件
发布评论