【发布时间】:2019-09-05 15:15:45
【问题描述】:
我有一个使用 docker-compose 构建的 docker 镜像,并提供了一个环境文件,如下所示:
version: '3'
services:
postgres:
...
redis:
image: redis:4.0
api:
build: ./src/api
env_file: ./integrationtests.env
tests_integration:
build: ./tests/Integration
env_file:
- ./integrationtests.env
depends_on:
- postgres
- redis
- api
环境文件有几个定义,但我最关心的一个看起来像这样ApiUrl=http:\\api
我有一个用于集成测试的 docker 文件,定义如下:
FROM apline
WORKDIR /app
ENV ApiUrl $ApiUrl
COPY ./scripts ./scripts
ENTRYPOINT [ "printenv" ]
当我运行docker-compose up 时,它会正确打印出构建阶段可用的所有环境变量。但是当我做docker run --entrypoint printenv mycontainer 时,环境变量ApiUrl 是空的。
如何确保特定变量在构建和运行阶段都可用?
【问题讨论】:
标签: docker docker-compose environment-variables