[英]Build And Run Docker Image through Jenkins SCM (Jenkinsfile pushed along with code to repo), Jenkins itself running in docker, using 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.