我们使用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配置和管道脚本中使用它们时遇到了问题。
一些例子:
要点:
感谢。
答案 0 :(得分:1)
可能有更好的方法,但这就是我为docker做的事情:
我创建了一个.env
文件,其中包含以下内容:
CONFLUENCE_VERSION=6.1.1
MYSQL_CONNECTOR_VERSION=5.1.41
Docker-compose会自动将它们作为环境变量拉出来。
然后我将它们作为args传递给docker-compose.yml
的构建部分:
version: '2'
services:
app:
build:
context: .
args:
- CONFLUENCE_VERSION=${CONFLUENCE_VERSION}
- MYSQL_CONNECTOR_VERSION=${MYSQL_CONNECTOR_VERSION}
从Jenkinsfile中的.env
读取CONFLUENCE_VERSION:
CONF_VER = sh(returnStdout: true, script: 'grep -e "CONFLUENCE_VERSION" .env | awk -F\'=\' \'{print $2}\'').trim()
答案 1 :(得分:0)
例如,您可以从某个文件中注入变量
.dockerproperties - 您在SCM回购中的文件
如果在这个文件中你有行
varName1 =测试
你可以在$ {varName1}格式中使用它
另外,如果你想使用git中的一些信息,比如tag或commit id,你应该安装插件https://wiki.jenkins-ci.org/display/JENKINS/Git+Parameter+Plugin