繁体   English   中英

如何使用Jenkinsfile在子目录中构建Dockerfile

[英]How build a Dockerfile in a Subdirectory using a Jenkinsfile

我有一个带有声明性管道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不存在。

我用谷歌和stackoverflow穷举搜索。 我尝试的事情包括sh命令, dir语法,docker build上的选项-f 其中一些是直截了当的失败,而我遇到的最佳结果就是COPY步骤问题。

Jenkinsfile中失败步骤的一个示例是:

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

由于上面的COPY问题,此操作失败。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM