如何获取所有Travis CI环境变量,不包括系统默认值?

时间:2016-08-17 13:36:55

标签: docker travis-ci

我想将我在Travis网络用户界面中配置的所有环境变量传递到docker run

我可以运行env > .env将它们保存到文件中,然后通过--env-file .env将其传递到docker。

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

我可以使用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!"

1 个答案:

答案 0 :(得分:0)

我不建议传递所有你的环境变量,但是如果你通过在它们前面加上像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