为什么dockerbuild立我的复制path与临时目录前缀?
这里是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 /发布文件夹。 这是我的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
它看起来像文件夹的path,或者你发布代码的地方可能是不正确的。 项目应该在context
定义的相应文件夹内的obj/Docker/publish
文件夹中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>
path的相似性
但是,如果我在每个子文件夹( context
)下创buildobj/Docker/publish
文件夹, docker-compose build
命令将正常工作。
. ├── Dockerfile ├── bar │ ├── Dockerfile │ └── obj │ └── Docker │ └── publish ├── docker-compose.yml ├── foo │ ├── Dockerfile │ └── obj │ └── Docker │ └── publish └── obj └── Docker └── publish
请检查您发布的文件夹是否存在于上下文中,而不是在根目录下。
我仍然相信这是错误信息中提到的path问题。 我希望这提供了一些帮助您debugging根本原因的上下文。
你能确认你的文件和文件夹的布局吗? 我相当肯定它的path相关,因为错误信息。 我还没有做任何Docker的Windows工作,但我也会仔细检查你的默认path使用正确的斜杠(向前与向后)
- 如何确保docker容器中的MySQL使用docker-entrypoint-initdb.d中的脚本进行初始化?
- 如何在Windows10上启动并注册Hyperledger的chaincode
- 文件在Docker容器中不断返回
- 容器命令不能被调用
- 使用Docker我得到的错误:“SQLSTATE 没有这样的文件或目录”
- 在Docker容器中的MySQL连接
- Docker撰写JVM参数
- 安装mongodb pecl软件包的问题:/ tmp / pear / temp / mongodb / configure:./configure.lineno:line 1:syntax error:unterminated quoted string
- docker工人运行没有主机卷的本地脚本