事情要从上周的一次事故说起,我们用 docker 部署的程序有一点问题,要马上回滚到上一个版本。
这个 docker 是一个比较复杂的和 BPF 有关的程序,启动时候需要设置很多 mount 和 environments,docker run
的命令特别长。所以我用 Ansible 来配置好这些变量,然后启动 docker,一个实例要花费 3~5 分钟才能启动。
同事突然说,某实例他手动启动了,当时我就震惊了,怎么手速这么快?!
请教了一下,原来是用的 runlike
工具,项目地址是:https://github.com/lavie/runlike。
这个工具的原理是,docker inspect <container-name> | runlike --stdin
,就会生成这个容器的 docker run
命令。这个思路简直太棒了。就和 Chrome 的 copy as cURL
功能一样好用!