我有一个带有声明性管道Jenkinsfile的github存储库。 我节点上的工作目录包含子目录。
该项目是使用Visual Studio 2017和.net core 2.1创建的简单的空linkx docker项目。它可以在我的Windows 7机器上正常执行,并具有一个hello world网页。
我无法在jenkins上构建Dockerfile。
我可以使用dir(...){}
开始Dockerfile构建。
失败的步骤总是
COPY ["MyProject/MyProject.csproj", "MyProject/"]
此步骤要求相对路径位于MySolution
中。
文件Workspace/MySolution/MyProject/MyProject.csproj
存在
错误消息是Workspace/MyProject/MyProject.csproj
不存在。
我使用google和stackoverflow进行了详尽的搜索。我尝试的方法包括sh
命令,dir
语法的组合,以及docker构建上的选项,例如-f
。其中有些是直截了当的失败,而我遇到的最佳结果是COPY
步骤问题。
Jenkinsfile中失败步骤的一个示例是:
dir("MySolution/MyProject")
{
script
{
docker.build("MyProject", ".")
}
}
此操作因上面的COPY
问题而失败。
我看到了一些问题,因此似乎在这里不太适用,哪些解决方案没有转移到这个问题上。
答案 0 :(得分:0)
事实证明,我最终真的很接近问题的解决方案。 这解决了我的子文件夹问题:
dir("MySolution")
{
script
{
docker.build("MyProject", "-f ./MyProject/Dockerfile .")
}
}