我想传递docker run我在 Travis Web UI 中配置的所有环境变量。
我可以运行env > .env将它们保存到文件中,然后通过--env-file .env.
不幸的是,这也会覆盖系统问题,例如PATH干扰容器的问题。
我可以过滤掉PATHusing env | grep -vE "^(PATH=)" > .env,但我想知道是否有办法只获取 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!"
Run Code Online (Sandbox Code Playgroud)
我不建议传递所有环境变量,但是如果您通过在它们前面添加前缀来将它们列入白名单,例如,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |