如何使用Jenkinsfile

时间:2019-01-22 13:30:30

标签: docker jenkins asp.net-core-2.1

我有一个带有声明性管道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问题而失败。

我看到了一些问题,因此似乎在这里不太适用,哪些解决方案没有转移到这个问题上。

1 个答案:

答案 0 :(得分:0)

事实证明,我最终真的很接近问题的解决方案。 这解决了我的子文件夹问题:

dir("MySolution")
{
    script
    {
        docker.build("MyProject", "-f ./MyProject/Dockerfile .")
    }
}