Docker 编译 缓存?

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

解决方案:

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

给TA打赏
共{{data.count}}人
人已打赏
解决方案

我需要让我的应用程序总是在后台运行。

2022-4-20 7:00:10

解决方案

在IBM watson对话对话框中使用HTML日期选择器从用户那里获取日期作为输入。

2022-4-20 7:00:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索