Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未使用jenkins在docker compose中传递shell env变量_Shell_Jenkins_Environment Variables_Docker Compose - Fatal编程技术网

未使用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] $

复制我的问题:

  • 在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] $ /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