gpt4 book ai didi

visual-studio - "Docker build path not found"在 docker 支持 Visual Studio 项目

转载 作者:行者123 更新时间:2023-12-04 06:04:22 24 4
gpt4 key购买 nike

我有 C# 解决方案,有 4 个项目,3 个是 Dll,1 个是控制台应用程序使用这些 DLL。

我尝试在 Visual Studio 上使用 docker 支持来构建我的 docker 镜像,但失败了
我的 dockerfile 如下:

> FROM microsoft/windowsservercore:ltsc2016 
> EXPOSE 80
> EXPOSE 1433
> EXPOSE 29051
>
> COPY bin/x64/debug /root/ ENTRYPOINT
> /root/RmsMainConsole.exe

我 CD 到我的 dockerfile 所在的目录并执行 docker build。
错误:
Docker CLI command : docker build -t rmsmainconsole:self-hosted .

Sending build context to Docker daemon 55.61MB
Step 1/6 : FROM microsoft/windowsservercore:ltsc2016
---> 9dbf7f740334
Step 2/6 : EXPOSE 80
---> Using cache
---> ad0ad85fd107
Step 3/6 : EXPOSE 1433
---> Using cache
---> 81ba13dbd4d4
Step 4/6 : EXPOSE 29051
---> Using cache
---> 1fa3db800abf
Step 5/6 : COPY bin/x64/debug /root/
COPY failed: CreateFile \\?\C:\ProgramData\Docker\tmp\docker-builder043346063\bin\x64\debug: The system cannot find the path specified.

您可以看到找不到 PATH。
而我试图在我的 .sln 级别创建 docker 文件。
我在 docker 文件中更改了一行。

复制 RmsMainConsole/bin/x64/debug/root/

注意:已添加“RmsMainConsole”目录。

我在我的 .sln 级别执行了 docker build 并且我成功地构建了它。
日志是:
Sending build context to Docker daemon   1.15GB
Step 1/6 : FROM microsoft/windowsservercore:ltsc2016
---> 9dbf7f740334
Step 2/6 : EXPOSE 80
---> Running in fe97cf236d5a
Removing intermediate container fe97cf236d5a
---> c31e236353b6
Step 3/6 : EXPOSE 1433
---> Running in f031fce5ecba
Removing intermediate container f031fce5ecba
---> 96c704c68ffb
Step 4/6 : EXPOSE 29051
---> Running in 365e2be43d0e
Removing intermediate container 365e2be43d0e
---> d30c3fb2214b
Step 5/6 : COPY RmsMainConsole/bin/x64/debug /root/
---> b214c1edc256
Step 6/6 : ENTRYPOINT /root/RmsMainConsole.exe
---> Running in 5c819915532a
Removing intermediate container 5c819915532a
---> 247f01bb9b82
Successfully built 247f01bb9b82
Successfully tagged rmsmainconsole:self-hosted

我注意到成功和失败的构建之间有两个区别:
1. docker 上下文的大小
2. 第 5/6 步的日志:

COPY failed: CreateFile\?\C:\ProgramData\Docker\tmp\docker-builder043346063\bin\x64\debug: 系统找不到指定的路径。



---> b214c1edc256

我应该如何使用 Visual Studio docker 支持来构建我的 docker 镜像。我哪里做错了 ?

最佳答案

不确定,我是回答你的问题 - 首先还是第二个:)。

我还想知道 Visual Studio 如何使用 Docker,因为 Dockerfile 是在项目文件夹中创建的,但它包含 COPY 的路径,就像它在根 (sln) 文件夹中一样。

我玩了一下,答案很简单。

Visual Studio 使用 -f 从解决方案文件夹构建图像切换到指向 Dockerfile。
您可以观看Output窗口查看它运行以下命令:

docker build -f "<path to Dockerfile>" -t <name:tag> --target base  --label "com.microsoft.created-by=visual-studio" "<solution dir>"

因此,我建议将 Dockerfile 放在项目文件夹中,并使用 -f 从根文件夹运行它。像 Visual Studio 这样的选项。

它是否回答了您的问题?

关于visual-studio - "Docker build path not found"在 docker 支持 Visual Studio 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50949005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com