django - 如何在 Jenkins 多分支管道中添加环境变量

标签 django jenkins jenkins-pipeline

我正在开发一个 Django 项目,我已经将它与 Jenkins Multibranch Pipeline 集成在一起。即使安装了 Environment Injector 插件,我也无法通过 Multibrach Pipeline 选项注入(inject)环境变量。

我有像 DB_PASSWORD 这样的环境变量,必须包含在环境变量中。

任何见解将不胜感激。

最佳答案

由于您需要 secret ,最佳实践方法是使用 withCredentials 插件,它可以加载存储在 Jenkins 凭证存储中的凭证,并将它们作为 ENV 变量公开给在其 block /闭包中执行的代码。使用 withCredentials 不会在 Jenkins 日志中公开它们

withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'DB_Creds', 
usernameVariable: 'DB_USERNAME', 
passwordVariable: 'DB_PASSWORD']]) {// do stuff }

对于非敏感环境变量,使用 withEnv

withEnv(["AWS_REGION=${params.AWS_REGION}"]) {// do stuff }

如果出于任何原因您希望在整个管道中设置环境变量(不完全推荐,但有时是必要的):

env.MY_VAR='var'
echo("My Env var = ${env.MY_VAR}")

关于django - 如何在 Jenkins 多分支管道中添加环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323136/

相关文章:

java - 无法在 Docker 中部署的 Jenkins 中安装插件

git - 在 Jenkins/Maven 中只构建受影响的模块

Jenkins 超时/中止异常

jenkins - 如何在不同于 Jenkins 的机器上执行命令行脚本

tomcat - 无法在浏览器 [docker] 中公开端口以从本地主机访问网络服务器

Jenkins 管道创建目录

html - 使用 Django 模板标签更改背景图像

在 Docker 容器中使用 Gunicorn 运行时,Python 不解析主机(超时)(weasyprint 需要这样做)

python - Django 中的外键关系,带有选择条件

python - Django 过滤器是否会增加每个用户的内存消耗 : Python