docker-compose 缓存运行结果



我在 docker-compose 中遇到问题,我在运行时将文件传递到容器中。问题是它似乎无法识别文件何时被更改,并在我更改文件名之前无限期地提供保存的结果。

一个例子(为简洁起见,修改了名称):

jono@macbook:~/myProj% docker-compose run vpn conf.opvn 
Options error: Unrecognized option or missing parameter(s) in conf.opvn:71: AXswRE+
5aN64mYiPSatOACC6+bISv8RcDPX/lMYdLwe8zQY6qWtbrjFXrp2 (2.3.8)

然后我更改文件,保存它,然后再次运行命令 - 完全相同的输出。

然后,在不更改任何内容的情况下,我执行此操作:

jono@macbook:~/myProj% cp conf.opvn newconf.opvn

当我运行$ docker-compose run vpn newconf.opvn它起作用时。看起来真的很傻。

我正在使用 Tmux 和 Mac,如果有某种方式会影响它。这是预期的行为吗?我在 docker-compose 主页上找不到任何记录这一点的内容。

编辑:具体来说,我正在使用来自惊人的杰斯的这个回购。

您正在使用的映像正在使用volume来挂载当前目录。基本上,文件conf.opvn被复制到 docker 容器中。更改文件时,容器不会看到该更改,但会选取重命名(容器将其视为新文件)。这很可能是由于文件的用户权限以及挂载此文件的 docker 容器中文件夹的用户权限。在开始该过程之前,请尝试将文件的权限更改为 777,然后再次检查。

您可以在docker的官方论坛中找到有关此的讨论

最新更新