将env变量传递给jenkins作业中的dockerrun命令



关于如何传递env变量的另一个问题。我试图解决的任务是:我有jenkins的工作,从git-reo中检查代码,运行dockerbuild和dockerrun命令。我需要将env变量传递给这个run命令。最好使用env文件,但作为单个变量也可以。这是我詹金斯的工作:

cp WL/${stageid}/env_settings.env ./env_settings.env
ls
docker build 
-t customer_front${stagePrefix} . 
docker stop customer_front${stagePrefix} || true && docker rm customer_front${stagePrefix} || true
#source env_settings.env
docker run 
-d --restart unless-stopped 
-e CLIENT_URL='https://test.customer.app' 
-e SITE_NAME='My best site' 
--name customer_front${stagePrefix} 
-p ${externalPort}:3000 
-e DEFAULT_LOCALE=$DEFAULT_LOCALE 
-e COUNTRY=$COUNTRY 
-e CURRENCY=$CURRENCY 
customer_front${stagePrefix}

我尝试将变量作为运行命令选项传递,尝试将变量存储在env_settings.env文件中,然后使用--env-file选项传递。两种变体都不起作用。唯一有效的方法是在dockerfile中声明args,然后在dockerfile中声明env-vars,并在build命令中传递它们,但这种变体不适合我。可能有人遇到了同样的问题,知道如何解决它?

对于Jenkins来说,Jenkins官方文档中有一些非常好的文档。

示例:

stage("some:job") {
steps {
script {
def args = "-e AWS_SECRET_ACCESS_KEY=x"
docker.image('localstack/localstack:0.12.0').withRun("${args}") { c ->
sh "echo hi"
}
}
}
}

最新更新