在我的 docker run 中,我想傳遞一個秘密作為 env 變數。這作業得很好。但是,我還有第二個變數“foo”,我想在我的容器內回顯它。這不起作用。如何讓變數“foo”在三重單引號內展開?
stages {
stage('test') {
steps {
script {
def foo = "bar"
sh '''
docker run \
--rm \
--env secret=$ENV_SECRET \
python:3.8.12 /bin/bash -c \
"echo $foo"
'''
}
}
}
}
uj5u.com熱心網友回復:
在 Groovy 中使用 Groovy 變數插入字串的語法涉及". 如果您ENV_SECRET是從withCredentials塊系結的環境變數,那么您希望在 shell 解釋器中插入它。因此,我們可以使用以下方法更新您的 shell 步驟方法:
sh """
docker run \
--rm \
--env secret=\$ENV_SECRET \
python:3.8.12 /bin/bash -c \
'echo $foo'
"""
您的語法將改為插入 shell 變數。請注意,兩者都會插入環境變數,但使用不同的解釋器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/346250.html
上一篇:如何讓django-crontab在Docker容器中執行命令?
下一篇:使用SymPy生成動態符號
