在blueocean中使用环境变量,而无需提交git repo

时间:2019-08-24 03:30:33

标签: docker jenkins continuous-integration continuous-deployment jenkins-blueocean

当我使用docker run运行docker容器时

docker run -d --memory=100m --cpus=0.5 -e SECRENT_ENV=$SECRET_ENV -e name=name --network=nginx-proxy image-name

通过詹金斯的blueocean并在蓝色海洋中设置环境变量

SECRET_ENV=SECRET_DATA

将环境变量以纯文本格式提交给jenkinsfile中的回购。

如何将环境变量从主机(运行jenkins的主机)传递到docker run命令。

其他信息: -在centos 7上运行
-尝试运行nodejs应用
-Jenkins本身在docker容器中运行
-尝试通过./bashrc export SECRET_ENV = secret_data

在主机上设置环境变量

2 个答案:

答案 0 :(得分:0)

首先,您可以通过Docker run命令传递主机环境变量。

export SECRENT_ENV=some-secret在主机上导出ENV,或者您可以从〜/ .bashrc中使用它,因为您看起来还可以。

docker run --rm -it -e SECRENT_ENV=$SECRENT_ENV alpine ash -c "echo $SECRENT_ENV"

这里,问题是您在docker内部运行Jenkins ,因此容器的其余部分将只能使用Jenkins容器中定义的Environment变量。要将所有环境变量设置为Jenkins,您需要更新Jenkins run命令。

docker run --rm -it -v /home/centos/.bashrc:/root/.bashrc alpine ash -c "echo $USER"

这将返回主机用户名centos,因此应避免这种情况,因为主机环境会覆盖Jenkins容器的所有环境变量。

因此,您只需要将所需的ENV传递给Jenkins,或者可以使用CSV input传递给Jenkins。

docker run --name jenkins -e SECRENT_ENV=123 -e SECRENT_ENV2=1234 -dit jenkins/jenkins

现在更新Jenkins文件中的ENV。

SECRET_ENV=${env.SECRET_ENV} 

env file

答案 1 :(得分:0)

您可以在Jenkins配置页面(http://localhost:8080/jenkins/configure)中创建一个环境变量,然后搜索环境变量。

并在Jenkins管道中添加所需的变量并使用,请参见以下内容:-

enter image description here