我有C#解决方案,有4个项目,3个是Dlls,1个是控制台应用程序使用这些DLL。
我试图使用visual studio上的docker支持来构建我的docker映像,但我的docker文件失败,如下所示:
> FROM microsoft/windowsservercore:ltsc2016
> EXPOSE 80
> EXPOSE 1433
> EXPOSE 29051
>
> COPY bin/x64/debug /root/ ENTRYPOINT
> /root/RmsMainConsole.exe
我将CD放入docker文件所在的目录,并执行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.
你可以看到那条路找不到。而我试图在我的电脑上创建docker文件。sln级别。我更改了docker文件中的一行。
COPY RmsMain/bin/x64/debug /root/
注:已添加“rmsmaconsole”目录。
我在我的. sln级别执行了docker构建,并成功构建了它。日志是:
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中的日志:
复制失败:CreateFile\?\C:\ProgramData\Docker\tmp\Docker-Builder04334603\bin\x64\debug:系统找不到指定的路径。
和
---
我应该如何使用visual studio docker支持来构建我的docker形象。我哪里出错了?
经过一些思考、尝试和错误之后,问题不在于docker对visual studio的支持。Docker build必须在我的解决方案目录的根目录下运行,因为Docker build需要能够找到映像文件所依赖的所有依赖项。
但让我好奇的是,那么docker对visual studio的支持是如何发挥作用的呢?我只能右键点击-
我目前的解决方案是在解决方案的根部手动添加一个docker文件。如果有人知道视觉工作室docker支持有更好的方法来解决这个问题,我会很高兴的。
谢谢
我认为实际原因要简单得多。如果查看docker ignore(.dockerignore)文件,您会注意到它会忽略除几个obj文件夹之外的所有内容。尝试删除docker ignore文件顶部的*以测试这一点。然后你可以有选择地忽略项目文件夹中你想复制的东西。我也遇到了这个问题,在我想查看忽略文件之前,我经历了很多尝试和错误。
不确定我是否回答了你的问题——第一个还是第二个:)。
我还想知道Visual Studio是如何使用Docker的,因为Dockerfile是在项目文件夹中创建的,但它包含了像在根(sln)文件夹中一样的COPY路径。
我玩了一下,答案很简单。
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放在project文件夹中,并像Visual Studio那样使用-f
选项从根文件夹运行它。
它能回答你的问题吗?
我想做我的第一个码头集装箱 我安装了dokcer-ce,遵循ubuntu的docker教程。 我创建一个文件夹,并把我的Dockerfile在它。 在这个文件夹中,我做了一个: 我总是有这样的输出 编辑:我在sshd,没有工作?!
我有3个项目,ProjectB,ProjectC。 当我构建ProjectB时,它没有任何问题。但是当我试图构建ProjectA时,它在控制台上出现以下错误而失败。 评估项目“:ProjectB”时出现问题。在项目:ProjectB中找不到路径为:ProjectC的项目。 build.gradle-ProjectC settings.gradle-ProjectC build.gradle - 项
我尝试用pip构建docker镜像,运行pip3安装*包*--索引url=*url*--受信任主机=*url*。但是,它失败了,并出现以下错误: 的匹配发行版。 然而,在我删除了包并成功构建了映像后,我可以从docker容器中成功安装包! 我用来构建镜像的bash是:
我正在使用新的日蚀氧气。我的项目设置包括Maven。Maven依赖项之一是Guava: 我面临的两个问题不允许我构建项目: 1. 2. 这里是我试图解决它:我已经使干净
我已经将一个现有的项目导入到eclipse,但它只给java文件提供错误,我已经设置了库,我还设置了Windows>Preferences>Installed JR,但问题没有解决。错误消息是由于生成路径不完整,项目未生成。找不到java.lang.Object的类文件。修复错误。错误截图
我已经从spring入门指南下载了源代码(zip文件):http://spring.io/guides/gs/rest-service/ 在文件夹“Complete”中生成整个项目已成功。使用Gradle(Gradle run)运行生成的jar文件也是成功的。但当我尝试在Windows命令行中使用“java-jar build\libs\gs-rest-service-0.1.0.jar”手动运行