Docker撰写缓存吗?环境变量

时间:2020-04-14 12:32:13

标签: docker docker-compose

我在docker-compose上遇到了非常奇怪的行为。我有一个配置为与docker swarm进行生产并与docker-compose进行开发的仓库。 Swarm在生产中工作正常,但是docker-compose的行为异常。

具体来说,我正在用参数替换定义构建参数,就像这样

build:
  context: .
  args:
    - APP_DIRECTORY=${APP_DIRECTORY:-/srv/app}
    - APP_ENV=${APP_ENV:-dev}

未定义APP_ENV或为空时,其值应为dev。正常工作,但是现在在未定义变量时采用值prod。我重新启动,清除了所有环境变量,甚至删除了docker-compose并再次安装了它,而APP_ENV仍在受到prod的攻击。是否有一些我不知道的compose缓存?

另一个奇怪的行为是docker-compose将与代理相关的环境变量传递给了容器。这些变量未在撰写文件中指定,甚至在主机上也不存在。同样,是否发生了一些麻烦的缓存?为什么docker-compose将我不要求的env变量传递给容器?

1 个答案:

答案 0 :(得分:1)

我犯了一个令人震惊的错误,我在同一目录中有一个.env文件,而docker-compose从文件中读取变量。