代码之家  ›  专栏  ›  技术社区  ›  Johannes

如何使用jenkinsfile在子目录中构建dockerfile

  •  0
  • Johannes  · 技术社区  · 6 年前

    我有一个带有声明性管道jenkinsfile的Github存储库。 我的节点上的工作目录包含子目录。

    该项目是一个简单的空LinkX Docker项目,由Visual Studio 2017和.NET Core 2.1创建。它通常在我的Windows7机器上执行,并有一个hello world网页。

    我不能在詹金斯的基础上建造码头文件。 我可以使用 dir(...){} . 失败的一步总是

    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", ".")
        }
    }
    

    这个失败了 拷贝 从上面发布。

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Johannes    6 年前

    结果证明我非常接近我的问题的解决方案。 这解决了我的子文件夹问题:

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