如何使用 Jenkinsfile 在子目录中构建 Dockerfile
How build a Dockerfile in a Subdirectory using a Jenkinsfile
我有一个 github 存储库,其中包含声明性管道 Jenkinsfile。
我节点上的工作目录包含子目录。
该项目是一个简单的空 linkx docker 项目,使用 visual studio 2017 和 .net core 2.1 创建。它在我的 windows 7 机器上正常执行并且有一个 hello world 网页。
我无法在 jenkins 上构建 Dockerfile。
我可以使用 dir(...){}
启动 Dockerfile 构建。
失败的步骤总是
COPY ["MyProject/MyProject.csproj", "MyProject/"]
这一步要求相对路径在MySolution
.
文件Workspace/MySolution/MyProject/MyProject.csproj
存在
错误信息是 Workspace/MyProject/MyProject.csproj
不存在。
我使用 google 和 Whosebug 进行了详尽的搜索。我尝试的事情包括 sh
命令的组合、dir
语法、docker 上的选项构建如 -f
。其中一些是直接失败,我在 运行 进入 COPY
步骤问题时获得了最好的结果。
Jenkinsfile 中失败步骤的一个示例是:
dir("MySolution/MyProject")
{
script
{
docker.build("MyProject", ".")
}
}
上面的 COPY
问题导致失败。
我看到了关于 so 的问题似乎不太适用于此,哪些解决方案没有运行解决这个问题。
事实证明,我最终非常接近问题的解决方案。
这解决了我的子文件夹问题:
dir("MySolution")
{
script
{
docker.build("MyProject", "-f ./MyProject/Dockerfile .")
}
}
我有一个 github 存储库,其中包含声明性管道 Jenkinsfile。 我节点上的工作目录包含子目录。
该项目是一个简单的空 linkx docker 项目,使用 visual studio 2017 和 .net core 2.1 创建。它在我的 windows 7 机器上正常执行并且有一个 hello world 网页。
我无法在 jenkins 上构建 Dockerfile。
我可以使用 dir(...){}
启动 Dockerfile 构建。
失败的步骤总是
COPY ["MyProject/MyProject.csproj", "MyProject/"]
这一步要求相对路径在MySolution
.
文件Workspace/MySolution/MyProject/MyProject.csproj
存在
错误信息是 Workspace/MyProject/MyProject.csproj
不存在。
我使用 google 和 Whosebug 进行了详尽的搜索。我尝试的事情包括 sh
命令的组合、dir
语法、docker 上的选项构建如 -f
。其中一些是直接失败,我在 运行 进入 COPY
步骤问题时获得了最好的结果。
Jenkinsfile 中失败步骤的一个示例是:
dir("MySolution/MyProject")
{
script
{
docker.build("MyProject", ".")
}
}
上面的 COPY
问题导致失败。
我看到了关于 so 的问题似乎不太适用于此,哪些解决方案没有运行解决这个问题。
事实证明,我最终非常接近问题的解决方案。 这解决了我的子文件夹问题:
dir("MySolution")
{
script
{
docker.build("MyProject", "-f ./MyProject/Dockerfile .")
}
}