簡體   English   中英

無法從詹金斯管道內部運行 shell 腳本

[英]Unable to run shell script inside from jenkins pipeline

我正在嘗試從 jenkins 管道運行以下 shell 腳本,但它給出了錯誤。

/bin/openstack image create Abhay_Centos_6_8_img_V7 --disk-format vhd --min-disk 40 --min-ram 1024 --volume "71c8532d-4fc0-42d4-a534-7b368e4804cb" --unprotected --property __os_type=Linux --property __platform=Linux --property __os_version="CentOS linux 6.8" --force

錯誤:

/bin/openstack image create Abhay_Centos_6_8_img_V7 --disk-format vhd --min-disk 40 --min-ram 1024 --volume 71c8532d-4fc0-42d4-a534-7b368e4804cb --unprotected --property __os_type=Linux --property __platform=Linux --property '__os_version=CentOS linux 6.8' --force
Uploading data and using container are not allowed at the same time
Build step 'Conditional step (single)' marked build as failure
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Finished: FAILURE
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s

但是,如果我在服務器上手動運行 shell 腳本,則相同的腳本運行良好。

很晚的答案,但我剛剛遇到問題並解決了它,所以讓我們分享一個解決方案:

檢查 Openstack 代碼后,似乎“openstack image create”檢查 tty 狀態:它需要一個 tty(即使您從卷創建),cron 或 jenkins 可能不提供。 所以你需要“偽造”一個 tty 來執行命令:

bash 中的示例:

faketty() {
    script -qefc "$(printf "%q " "$@")"
}
faketty openstack image create --volume ${VOLUME_NAME} ${IMAGE_NAME}

享受

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM