这是DockerFile。
FROM microsoft/aspnet:4.7
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
这就是错误。
Error
Building a.enterpriseextservices
Service 'a.enterpriseextservices' failed to build: COPY failed:
GetFileAttributesEx \?C:Usersjesmiller-AMAppDataLocalTempdocker-
builder587295999objDockerpublish: The system cannot find the file specified..
For more troubleshooting information, go to
http://aka.ms/DockerToolsTroubleshooting docker-compose C:Program Files
(x86)Microsoft Visual Studio2017CommunityMSBuildSdksMicrosoft.Docker.SdkbuildMicrosoft.VisualStudio.Docker.Compose.targets 349
我已经将项目发布到obj/Docker/publish文件夹中。这是我的档案。我在docker-compose.yml文件所在的文件夹中使用了docker-compase-up命令。
version: '3'
services:
a.web.familyconnection:
image: a.web.familyconnection
build:
context: .FamilyConnection
dockerfile: Dockerfile
b.enterpriseextservices:
image: b.enterpriseextservices
build:
context: .Frameworkb.EnterpriseExtServices
dockerfile: Dockerfile
我遇到了同样的问题。原来我犯了一个愚蠢的错误。我在我的.dokerignore文件中添加了以下内容,这只是在设置新项目时的习惯:
bin
obj
.vs
.git
然后我试着在Dockerfile 中运行这个
COPY ./bin/publish/ .
Docker给出了一个奇怪的tmp路径错误,因为自从我告诉它忽略我的/bin文件夹后,它又回到了那个路径。一旦我复制到不同的发布路径(而不是bin),问题就消失了。
看起来你的文件夹路径,或者你发布代码的位置可能不正确。项目应发布在context
定义的相应文件夹内的obj/Docker/publish
文件夹中
使用示例docker-compose.yml
:
version: "3"
services:
foo:
build: ./foo
bar:
build: ./bar
和Dockerfile
:
FROM jaydorsey/ruby-2.4.1
COPY ${source:-obj/Docker/publish} .
像这样的树结构:
.
├── Dockerfile
├── bar
│ └── Dockerfile
├── docker-compose.yml
├── foo
│ └── Dockerfile
└── obj
└── Docker
└── publish
当我运行docker-compose build
时,我得到以下错误
Building foo
Step 1/2 : FROM jaydorsey/ruby-2.4.1
---> b79899b232f6
Step 2/2 : COPY ${source:-obj/Docker/publish} .
ERROR: Service 'foo' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder186649811/obj/Docker/publish: no such file or directory
这和你的不一样,因为我运行的是macOS,但非常相似。您将注意到临时文件位置(这是Docker内部复制文件的工件)和docker-build<randomstring>
路径中的相似性
但是,如果我在每个相应的子文件夹(context
)下面创建obj/Docker/publish
文件夹,则docker-compose build
命令可以正常工作。
.
├── Dockerfile
├── bar
│ ├── Dockerfile
│ └── obj
│ └── Docker
│ └── publish
├── docker-compose.yml
├── foo
│ ├── Dockerfile
│ └── obj
│ └── Docker
│ └── publish
└── obj
└── Docker
└── publish
请检查您发布的文件夹是否存在于所述上下文中,而不是根目录中。
我仍然认为这是错误消息中指出的路径问题。我希望这能提供一些上下文来帮助您调试根本原因。
你能确认一下你的档案吗;文件夹布局?由于出现错误消息,我很确定它与路径有关。我也没有做任何Docker for Windows的工作,但我也会使用正确的斜杠(正向与反向)仔细检查您的默认路径