docker撰写没有找到我的文件

时间:2018-05-07 21:52:03

标签: docker docker-compose dockerfile

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

这似乎有效

2 个答案:

答案 0 :(得分:1)

在docker文件中指定的路径将上下文设置为撰写文件的父文件夹。 为了使其正常工作,您需要执行以下操作之一:

  1. 将上下文更改为.
  2. 将路径更改为NuGet.config以包含当前文件夹名称:root/NuGet.config

我建议您采用第一种方法,因为从您的问题来看,您看不到要引用父文件夹的任何原因。

答案 1 :(得分:0)

通常,从我在项目中看到的情况来看,上下文是以不同的方式构建的。您应该重新组织您的项目:

root
  - docker-compose.yml
  - service
    - Dockerfile
    - Nuget.config

之后,撰写文件中的build将如下所示:

build: ./service

你运行它:

docker-compose up --build