2016-08-17 87 views
2

我想傳入docker run我在Travis Web UI中配置的所有環境變量。如何獲取所有Travis CI環境變量,不包括默認的系統變量?

我可以運行env > .env將它們保存到一個文件,然後通過--env-file .env將它傳遞到docker。

不幸的是,這也覆蓋了干擾容器的系統問題,如PATH

我可以使用env | grep -vE "^(PATH=)" > .env來篩選出PATH,但我想知道是否有辦法只得到Travis的?

這裏是我的.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!" 

回答

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