将Dockerfile转换为Bash脚本

use*_*828 9 bash docker dockerfile

有没有简单的方法将Dockerfile转换为Bash脚本,以便在真实操作系统上安装所有软件?原因是docker容器我无法改变,如果他们没有成功,我想事后改变一些东西.

And*_*ndy 6

简而言之 - 不。

通过使用dockerfile-parse等工具解析 Dockerfile,您可以运行各个RUN命令,但这不会复制 Dockerfile 的输出。

您必须运行相同操作系统的相同版本。

和ADD命令COPY影响文件系统,该文件系统位于其自己的命名空间中。在容器外部运行这些可能会破坏您的主机系统。您的主机还将在容器映像没有的位置包含文件。

VOLUME安装也会影响文件系统。

该FROM映像(可能是其他映像的后代)可能安装了其他应用程序。

如果安装或下载步骤较大,则编写 Dockerfile 的过程可能会很慢。为了缓解这种情况,请尝试添加新包作为新RUN命令(以利用缓存)并增量添加功能,仅在功能完成时优化/压缩层。

您可能还想使用ServerSpec之类的工具来对容器映像采用 TDD 方法,并防止开发过程中出现回归。

这里有最佳实践文档、陷阱和原始文章。