我想将我在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!"
答案 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