这是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:\Users\jesmiller-AM\AppData\Local\Temp\docker-
builder587295999\obj\Docker\publish: 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 Studio\2017\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 349
我已将项目发布到obj / Docker / publish文件夹。 这是我的docker-compose文件。我使用了docker-compose.yml文件所在文件夹中的docker-compose up命令。
version: '3'
services:
a.web.familyconnection:
image: a.web.familyconnection
build:
context: .\FamilyConnection
dockerfile: Dockerfile
b.enterpriseextservices:
image: b.enterpriseextservices
build:
context: .\Framework\b.EnterpriseExtServices
dockerfile: Dockerfile
答案 0 :(得分:0)
看起来您的文件夹路径或您发布代码的位置可能不正确。该项目应发布在obj/Docker/publish
context
文件夹中
使用示例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>
路径中的相似性
但是,如果我在每个相应的子文件夹(obj/Docker/publish
)下创建context
文件夹,则docker-compose build
命令可以正常工作。
.
├── Dockerfile
├── bar
│ ├── Dockerfile
│ └── obj
│ └── Docker
│ └── publish
├── docker-compose.yml
├── foo
│ ├── Dockerfile
│ └── obj
│ └── Docker
│ └── publish
└── obj
└── Docker
└── publish
请检查您发布的文件夹是否存在于所述的上下文中,而不是在根目录中。
我仍然认为这是一个路径问题,如错误消息中所述。我希望这提供了一些帮助您调试根本原因的上下文。
您能否确认一下您的档案&amp;文件夹布局?由于错误信息,我很确定它的路径是相关的。我还没有为Windows工作任何Docker,但我也会使用正确的斜杠(向前与向后)仔细检查您的默认路径
答案 1 :(得分:0)
我有同样的问题。原来我犯了一个愚蠢的错误。我将以下内容添加到我的.dockerignore文件中,只是出于建立新项目的习惯:
bin
obj
.vs
.git
然后我尝试在Dockerfile中运行它
COPY ./bin/publish/ .
Docker给出了奇怪的tmp路径错误,因为自从我告诉它忽略我的/ bin文件夹以来,它退回到了该路径。复制到其他发布路径(而不是bin)后,问题就消失了。