未使用jenkins在docker compose中传递shell env变量
复制我的问题:未使用jenkins在docker compose中传递shell env变量,shell,jenkins,environment-variables,docker-compose,Shell,Jenkins,Environment Variables,Docker Compose,复制我的问题: 在jenkins中创建freestyle项目,其中一个任务是“执行shell”,代码如下: 将docker-compose.yml放入作业的工作区: 运行此作业 我得到一个错误: Started by user anonymous [EnvInject] - Loading node environment variables. Building in workspace /var/lib/jenkins/jobs/testenv/workspace [workspace] $
Started by user anonymous
[EnvInject] - Loading node environment variables.
Building in workspace /var/lib/jenkins/jobs/testenv/workspace
[workspace] $ /bin/sh -xe /tmp/hudson1988957642163027988.sh
+ PROJECT_NAME=hello
+ IMAGE_NAME=hello-world
+ docker-compose -p hello up
The IMAGE_NAME variable is not set. Defaulting to a blank string.
我在我的mac电脑上用同样的代码创建了这个脚本,它运行正常
Alexanders-Mini:deploy alexanderkondaurov$ ./test.sh
Creating hello_app_1
Attaching to hello_app_1
app_1 |
app_1 | Hello from Docker.
app_1 | This message shows that your installation appears to be working correctly.
我不明白为什么它在詹金斯不起作用。
正如您所看到的,docker compose没有看到shell环境变量:(查看Rajiv的响应。 拉吉夫回复的副本: jenkins shell中的环境变量不会自动导入。请通过jenkins作业工作区下的.env文件添加环境变量
$ echo PROJECT_NAME=hello >> .env
$ echo IMAGE_NAME=hello-world >> .env
$ cat .env
export PROJECT_NAME=hello
export IMAGE_NAME=hello-world
然后跑
$ docker-compose up
jenkins上的docker compose版本为1.7.0,而我的mac上的docker compose版本为1.7.1
$ echo PROJECT_NAME=hello >> .env
$ echo IMAGE_NAME=hello-world >> .env
$ cat .env
export PROJECT_NAME=hello
export IMAGE_NAME=hello-world
$ docker-compose up