Docker 编译 缓存?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 正在从文件中读取变量。

以上是关于Docker 编译 缓存?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以动态编译和执行 C# 代码片段?

Notepad++编辑器——Verilog代码片段直接编译

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

如何缓存片段视图