Linux環境的Jenkins構建NetCore項目出現的問題--- dotnet: 未找到命令


實驗的機器是CentOS 7.9  。

Jenkins里自動編譯.netcore項目的步驟:

1、Linux安裝netcore 的sdk

可以看這篇文章https://www.cnblogs.com/puzi0315/p/15534427.html

 

2、在Linux里測試下效果:

dotnet --info
dotnet --version

一切正常。

 

3、在Jenkins里創建任務測試,“構建”部分的代碼如下:


echo '============dotnet --info信息================'
dotnet --info
dotnet --version

則報錯:信息如下:

/tmp/jenkins11995557596560651774.sh:行9: dotnet: 未找到命令
/tmp/jenkins11995557596560651774.sh:行10: dotnet: 未找到命令

 

 分析原因,

(1)sh腳本不支持dotnet命令,我寫了個.sh腳本執行發現是正常了。這個點排查。

(2)JenKins調用的sh的版本所致。解決方案是在命令的最上部加一句話,指定使用bash 。(這種方案被證實也是不行的)

#!/bin/bash -il

完整的腳本如下:

#!/bin/bash -il

echo '============查看打包環境================'
pwd
ls
echo $PATH
whoami
echo '============dotnet --info信息================'
dotnet --info
dotnet --version

結果還是報錯,

bash: dotnet: 未找到命令
bash: dotnet: 未找到命令

這就比較糾結了,問題還沒有解決。又找了好多天,終於發現了個解決方案。

解決方案如下:

4、將linux的環境變量配置到jenkins中。

(1)、在linux中輸入  echo $PATH

 

 (2)、找到jenkins的系統配置-->環境變量

 

 全局變量里設置PATH值即可。

 

 

 

 

 

“構建”里的代碼還是如下圖,再次構建就成功了。腳本不需要第一句的那句話也可以的。

 

其實我也不知道為啥就好了。難道是JenKins調用的sh所使用的路徑,只用了其中一個路徑所致?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM