Docker告诉我它无法找到指定的文件。我的背景错了吗?我的文件夹结构如下。
root
- docker
- docker-compose-service.yml
- service
- DockerFile
Nuget.config
在我的docker-compose-service.yml文件中,我有
build:
context: .
dockerfile: ../service/DockerFile
我从根文件夹运行以下命令
docker-compose -f docker/docker-compose-service.yml up --build
它可以在运行代码时找到Dockerfile但在dockerFile中的一行上失败,这是
COPY NuGet.config .
错误是
failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder408021827/NuGet.config: no such file or directory
我做错了什么?我玩了上下文和dockerFile位置,但后来找不到DockerFile
嗯,如果我从docker文件夹运行命令并将docker-compose-service.yml文件更改为
context: ../
dockerfile: service/DockerFile
这似乎有效
答案 0 :(得分:1)
在docker文件中指定的路径将上下文设置为撰写文件的父文件夹。 为了使其正常工作,您需要执行以下操作之一:
.
NuGet.config
以包含当前文件夹名称:root/NuGet.config
我建议您采用第一种方法,因为从您的问题来看,您看不到要引用父文件夹的任何原因。
答案 1 :(得分:0)
通常,从我在项目中看到的情况来看,上下文是以不同的方式构建的。您应该重新组织您的项目:
root
- docker-compose.yml
- service
- Dockerfile
- Nuget.config
之后,撰写文件中的build
将如下所示:
build: ./service
你运行它:
docker-compose up --build