我有一个有1000多行代码的易操作手册,可以构建我的VM,我想构建一个具有相同项目结构、依赖项、用户、权限等的docker映像。
因此例如该代码将被转换为"0";RUN pip3安装请求jsonschema">
- name: Install pip3 dependencies
pip:
executable: pip3
name:
- requests
- jsonschema
...
不需要转换成Dockerfile位来在构建管道的另一侧吐出容器图像,可以使用ansible bender。
一开始,有1000多行可翻译的剧本似乎有点奇怪。它应该更多地划分为角色、配置等,这样你就可以更好地维护和控制你的ansible剧本的目标状态。
其次,我怀疑是否有一种自动的方法来解决你的问题。我能想到的是,就像按照你的形象运行剧本,甚至在你的形象中运行剧本,而不是";节省码头费";
当你在虚拟机上运行可靠的剧本时,这可能是一个更快实现目标的选项,拥有一个与虚拟机状态相同的docker镜像。
当你选择一个简单的docker基础映像来覆盖你的ansible依赖项时,你可以提取特定的剧本逻辑,并将其放入你的dockerfile中的RUN表达式中,因此,将你的剧本分割成你的anssible脚本覆盖的较小部分。
我会对docker容器运行ansible,稍后保存容器状态并释放映像。