Docker 编译 缓存?

问题描述 投票:0回答:1

我在使用 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变量传递给容器?

docker docker-compose
1个回答
0
投票

我犯了一个愚蠢的错误,我有个 .env 文件在同一目录下,并且 docker-compose 正在从文件中读取变量。

© www.soinside.com 2019 - 2024. All rights reserved.