如何获得所有的Travis CI环境variables,不包括默认的系统variables?

我想通过docker run我在Travis Web UI中configuration的所有环境variables。

我可以运行env > .env把它们保存到一个文件中,然后通过--env-file .env把它传递给--env-file .env

不幸的是,这也覆盖了干扰容器的系统问题,如PATH

我可以使用env | grep -vE "^(PATH=)" > .env过滤掉PATH env | grep -vE "^(PATH=)" > .env但我想知道是否有办法只得到特拉维斯的?

这是我的.travis.yml:

 language: bash sudo: required services: - docker before_install: - env | grep -vE "^(PATH=)" > .env install: - docker build -t mycompany/myapp . script: - docker run -i --env-file .env mycompany/myapp nosetests after_success: - echo "SUCCESS!" 

我不build议通过所有的环境variables,但是如果您将它们添加到类似TRAVIS_类似项目中,您可以执行如下操作:

 export TRAVIS_WUT=foo export TRAVIS_FOO=asdf docker run $(printenv | grep -E '^TRAVIS_' | sed 's/TRAVIS_/-e /g') # would run -> docker run -e FOO=asdf -e WUT=foo something