【发布时间】:2017-05-07 20:54:55
【问题描述】:
我们正在使用 docker-compose 在 docker 容器中运行 Jenkins。
我们的目标是能够运行可通过 docker-compose 命令提供的环境变量配置的生产和测试环境。
我们在docker-compose.yml文件中定义了几个环境变量,比如:
environment:
- gitlabrepourl=http://url-of-our-git-repo/repo-name
- hosturl=http://jenkins-host-url
环境变量在运行 bash shell 时存在于容器中,但我们在 Jenkins 配置和管道脚本中使用它们时遇到问题。
一些例子:
- 在创建管道作业并选择“来自 SCM 的管道脚本”-> git -> 存储库 URL = ${gitlabrepourl} 时。管道作业能够克隆存储库以获取 Jenkinsfile,但是在运行“checkout scm”时它会失败,因为 ${gitlabrepourl} 未解析。 (可能是 Jenkins 错误??)
- 尝试在 Jenkins 系统配置中使用环境变量时,它们并没有在所有地方都得到解决。例如当尝试使用 ${hosturl} 作为我们的“Jenkins URL”配置时,它没有得到解决。或者尝试在我们的“Gitlab 主机 URL”配置中使用 ${gitlabrepourl} 时,它没有通过连接测试。
总结:
- jenkins配置中如何使用环境变量,如何知道哪些字段支持使用环境变量?
- 如何将 docker 容器中存在的环境变量注入到管道脚本中?
- 我们将不胜感激任何可以帮助我们实现任何目标的方式。
谢谢。
【问题讨论】:
标签: jenkins docker environment-variables docker-compose jenkins-pipeline